iOS、Android与webView的交互

直接主题:Android或iOS webView图片的点击事件处理。

一、Android

1. webView自定义的webViewClient做如下处理

@Override
 public void onPageFinished(WebView view, String url) {
      view.getSettings().setJavaScriptEnabled(true);
      addImageClickListner(view);
 }

private void addImageClickListner(WebView contentWebView) {
        // 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,函数的功能是在图片点击的时候调用本地java接口并传递url过去
        contentWebView.loadUrl("javascript:(function(){" +
                "var objs = document.getElementsByTagName(\"img\"); " +
                "for(var i=0;i

其中window.android.openImage(this.src);中的android为自定义标识

2. webView

webView.addJavascriptInterface(new JSInterface(), "android");

其中JSInterface为自定义,android对应webViewClient中的window.android.openImage()

3. JSInterface中代码

public class JSInterface {
        public JSInterface() {

        }

        @JavascriptInterface
        public void openImage(String img) {
            // img即获取到图片的点击事件,该如何处理自己看着需求。
            Intent intent = new Intent(getActivity(), PhotoViewActivity.class);
            intent.putExtra((PhotoViewActivity.Intent_PhotoViewActivity_photo, img);
            startActivity(intent);
        }
    }

二、iOS

两个UIWebView代理的使用:

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [webView stringByEvaluatingJavaScriptFromString:@"javascript:(function(){ var objs = document.getElementsByTagName(\"img\"); for(var i=0;i

注:两个代理中"iOS"为标识

结语:有h5功底的同学,可以在此基础上进行各种拓展

你可能感兴趣的:(iOS、Android与webView的交互)