我尝试在我的 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);
}
}
添加回答
举报
0/150
提交
取消