iOS假装进步

iOS - WKWebView点击链接跳转并获取新页面的URL

2019-06-29  本文已影响0人  ShIwEn9

在H5盛行的时代,在app当中难免需要去嵌套一些H5页面,作为iOS的“后生”
一开始就是用了WKWebView来实现H5页面的实现。😂

所以主要的问题就是如何获取当前的点击事件,并得到URL;

既然确定好问题所在,那么只需要针对问题去解决它就好了。

查找资料发现:
-(void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;
可以实现链接事件的拦截

具体代码如下:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void(^)(WKNavigationActionPolicy))decisionHandler {
    // 允许链接跳转
    decisionHandler(WKNavigationActionPolicyAllow);
    // 获取新页面的URL 
    NSString *url = navigationAction.request.URL.absoluteString;
    if (![url isEqualToString:self.urlString]) {
        //从字符A中分隔成2个元素的数组
        NSArray *array = [url componentsSeparatedByString:@"id="]; 
        NSLog(@"array:%@",array);
        // 改变页面的ID
        self.newsId = [NSString stringWithFormat:@"%@",array[1]] ;
        // 通过新ID重新获取页面数据
        [self initWithData] ;
        // 重新拼接路径 加载内容
        self.urlString = [NSString stringWithFormat:@"https://你的域名/homePage/news?platform=Ios&id=%@",self.newsId] ;
        [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.urlString]]];
    }

这样就实现了基本需求:具体问题具体对待;但思路都差不多。
这样就结束了,如有不足的地方,请多多指教,谢谢。

⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 求职:本人实习生,最近想换个工作环境,如果觉得我还可以的话,请向我留言,安徽,杭州,南京地区的都可以。。

上一篇下一篇

猜你喜欢

热点阅读