WebView调用JS:
                                  可以这样:                           mWebView.loadUrl("javascript:backClick()");                           //获得手机的IMSI码(这是统计安装次数时写的,首次安装,发送IMSI码,详情请找我的其他博文)                           TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);                           String imsi = mTelephonyMgr.getSubscriberId();                           mWebView.loadUrl("javascript:androidInstallSTAT("+IMAI+")");                 
JS调用WebView: a.JavaScript代码
                                           $('#btn_sm').click(function () {                                  if (/android/i.test(navigator.userAgent)) { // android                                  window.XYLAndroidJSInterface.scanQRCode();                                  } else if (/ipad|iphone|mac/i.test(navigator.userAgent)) { // ios                                  document.location.href = "testios:SYS";                                  } else {                                  return;                                  }                                  });                      
b.Android代码(当然,你首先得 mWebView .getSettings().setJavaScriptEnabled(true);
                                           mWebView.addJavascriptInterface(new Object() {                                  @JavascriptInterface                                  public void scanQRCode() {                                  //网页上调用后执行                                  Intent intent = new Intent(MainActivity.this, MipcaActivityCapture.class);                                  startActivity(intent);                                  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);                                  startActivityForResult(intent, FILECHOOSER_RESULTCODE);                                  }                                  @JavascriptInterface                                  public void setGoodsCartSize(final int paramAnonymousInt) {                                 //                                   }                                  }, "XYLAndroidJSInterface");                       
其他交互方式:shouldOverrideUrlLoadint()方法可以捕获链接,执行特定操作。比如某页需要新开,某页需要清除历史,等等
                                            mWebView.setWebViewClient(new HelloWebViewClient());                                  mWebView.setWebChromeClient(new WebChromeClientImpl());                                 //这下边是调用的两个类。上下是两部分代码,请忽视我的格式,参悟我的思想                                  private class HelloWebViewClient extends WebViewClient {                                  @Override                                  public boolean shouldOverrideUrlLoading(WebView view, String url) {//每次打开新页面都执行                                  if (url.startsWith("tel:")) {//判断也在这里不太好,每次都需要,可以优化                                  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));                                  view.goBack();//因为打开电话页面的时候,view是加载了tel:40012345页面。所以这里要返回一下。                                 // return true;                                  }else{                                  view.loadUrl(url);//如果不是tel的话,就用自身加载页面。如果不写这句,会跳到系统浏览器加载。                                  }                                  return true;                                  }                                  }                      
                                                     class WebChromeClientImpl extends WebChromeClient {                                        WebChromeClientImpl() {                                        }                                       //Alert,app执行                                                public boolean onJsAlert(WebView paramWebView, String paramString1, String paramString2,                                        JsResult paramJsResult) {                                        AlertDialog.Builder localBuilder = new AlertDialog.Builder(paramWebView.getContext());                                        localBuilder.setTitle("*提示").setMessage(paramString2).setPositiveButton("确定", null);                                        localBuilder.setCancelable(false);                                        localBuilder.setIcon(R.drawable.icon_alpha);                                        localBuilder.create().show();                                        paramJsResult.confirm();                                        // Toast.makeText(MainActivity.this, "toastle",                                        // Toast.LENGTH_SHORT).show();                                        return true;                                        }                                                                               public void openFileChooser(ValueCallback<Uri> paramValueCallback) {                                        // android 3.0+                                        MainActivity.this.mUploadMessage = paramValueCallback;                                        Intent localIntent = new Intent("android.intent.action.GET_CONTENT");                                        localIntent.addCategory("android.intent.category.OPENABLE");                                        localIntent.setType("*/*");                                        MainActivity.this.startActivityForResult(Intent.createChooser(localIntent, "file Browser"), 1);                                        }                                                                               public void openFileChooser(ValueCallback<Uri> paramValueCallback, String paramString) {                                        // Toast.makeText(MainActivity.this, "22222",                                        // android > 4.1.1                                        MainActivity.this.mUploadMessage = paramValueCallback;                                        Intent localIntent = new Intent("android.intent.action.GET_CONTENT");                                        localIntent.addCategory("android.intent.category.OPENABLE");                                        localIntent.setType("*/*");                                        MainActivity.this.startActivityForResult(Intent.createChooser(localIntent, "File Chooser"), 1);                                        }                                        }                           
openFileChooser是有关图片上传的


更多相关文章

  1. 安全新手入坑——HTML标签
  2. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  3. Nginx系列教程(四)| 一文带你读懂Nginx的动静分离
  4. Android(安卓)IllegalArgumentException: Cannot draw recycled
  5. Android(安卓)签名打包出现的错误的解决方法以及代码中获取应用
  6. Android面试-Android项目构建
  7. 自定义toast你需要的都在这里,单例模式,自定义布局,完全自定义,
  8. camera学习---HAL代码流程
  9. android用webview加载H5页面出现点击事件失效的问题解决

随机推荐

  1. Android之快捷方式一——通过应用程序创
  2. android 在线预览pdf文件(目前最全)
  3. 布局的学习
  4. Android CTS 4.03测试总结
  5. Android Studio里面Failed to resolve:
  6. android 动画总结
  7. Android通过手势实现图像拖拽功能
  8. Android软键盘使用
  9. Android SQLite是线程安全的吗?
  10. Android studio 使用Google 的AdMob