addJavascriptInterface在SDK 25中不起作用

时间:2017-06-08 09:11:23

标签: javascript android webview

在WebView中显示源代码我使用这个,并且它工作得很好因为SDKTarget是15但是当我将SDKTarget更改为25时,下面的代码不起作用!

为什么它不在SDK 25中工作?该怎么办?

 private void testWeb() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");


    webView.loadUrl("http://www.google.com");
    webView.setWebViewClient(new WebViewClient() {

      @Override
      public void onPageFinished(WebView view, String url) {
          webView.loadUrl("javascript:window.HtmlViewer.showHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");

      }
    });
 }

 class MyJavaScriptInterface {

    private Context ctx;
   MyJavaScriptInterface(Context ctx) {
     this.ctx = ctx;
   }


public void showHTML(String html) {
  new AlertDialog.Builder(ctx).setTitle("HTML").setMessage(html).setPositiveButton(android.R.string.ok, null).setCancelable(false).create().show();
  Log.d("HTML", html);
    }
  }

并且在gradle中:

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.freestyler.jam.criss"
    minSdkVersion 15
    targetSdkVersion 15
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 

'proguard-rules.pro'
        }
    }
}

0 个答案:

没有答案