为了账号安全,请及时绑定邮箱和手机立即绑定

Android webView - 没有调用 javascript 代码

Android webView - 没有调用 javascript 代码

慕田峪9158850 2021-08-20 15:50:23
我尝试在我的 webview 中加载这个 javascript:@SuppressLint("ClickableViewAccessibility")@Overrideprotected void onCreate(Bundle savedInstanceState){    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_fullscreen);    website = "https://www.blizz-z.de";    myWebView = findViewById(R.id.blizzView);    WebSettings settings = blizzView.getSettings();    settings.setJavaScriptEnabled(true);    myWebView.setWebViewClient(new WebViewClient() {        @Override        // Notify the host application that a page has finished loading.        public void onPageFinished(WebView view, String url)        {            myWebView.loadUrl(                    "javascript:(function() {" +                        "setInterval(function() {" +                            + "jQuery('#myInput').css('background', '#'+(Math.random()*0xFFFFFF<<0).toString(16));"                        + "}, 1000);"                    + "});"            );        }    }    ...}但它没有被执行。如果我在桌面浏览器中执行该脚本,则它可以工作。它仅出于测试目的更改了我网站上搜索栏的背景颜色。是setInterval不是在web视图支持?
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

您是否在 API 19 或更高版本上部署?如果是这样,你将不得不使用WebView#evalulateJavascript而不是WebView#loadUrl


我总是使用这种方法来简化和加快速度


public void js(String code) {

    if (Build.VERSION.SDK_INT >= 19) {

        this.evaluateJavascript(code, new ValueCallback<String>() {

            @Override

            public void onReceiveValue(String response) {

            }

        });

    } else {

        this.loadUrl("javascript:" + code);

    }

}


查看完整回答
反对 回复 2021-08-20
  • 2 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信