在Android WebView中执行外部JavaScript脚本

时间:2018-07-19 13:14:53

标签: javascript android android-webview

我的活动中有一个加载网页的WebView和一个按钮。当用户按下按钮时,我需要注入一个远程JavaScript脚本(该脚本对网页元素执行一些操作)。 脚本类似于:

var SOME_VARS = {
   //... some variables for script
},
IGNORED_TAGS = {
    script: !0,
    style: !0
};

function parseText(i) {
   // function that must be executed on WebView current page
}
document.body.childNodes.forEach(parseText);

它位于http://somewhere.com/myscript.js

在我的Android应用上,我尝试过类似的操作

 String url = "http://urltoopen.com";
    final WebView webView = findViewById(R.id.webview);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    CookieManager.getInstance().setAcceptCookie(true);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true);
    }
    webView.loadUrl(url);

    Button button = findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            webView.loadUrl("http://somewhere.com/myscript.js"); 
        }
    });

但是脚本未执行。 我该怎么办?

0 个答案:

没有答案