andriod与ios 中webview 拦截url实现通讯

andriod与ios 中webview 拦截url实现通讯

andriod与ios 中webview 拦截url实现通讯

想实现andriod与ios通过url调用原生的功能,比如拍照,扫描二维码等

那么andriod与ios中的webview提供了拦截url的功能,通过拦截可以实现h5与原生的调用

先看andriod的

webView.setWebViewClient(new WebViewClient() {
 
            @Override
            // 在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // 判断url链接中是否含有某个字段,如果有就执行指定的跳转(不执行跳转url链接),如果没有就加载url链接
                if (url.contains("bfw://scan")) {
                    Intent i = new Intent(MainActivity.this, ScanActivity.class);
                    startActivity(i);
                    return true;
                } else {
                    return false;
                }
            }
        });

ok

再看看ios的

#pragma mark - UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *URL = request.URL;
    NSString *scheme = [URL scheme];
    if ([request.URL.absoluteString hasPrefix:@"bfw://scan"]) {
        //调用原生的扫描组件
        return NO;
    }
    return YES;
}



{{collectdata}}

网友评论0