javascript - 如何将 javascript 重定向加载到 android webview 中?

标签 javascript android webview

我正在尝试将页面加载到 webview 中。通常,当我打电话时

webview.loadUrl(url);

效果很好。该 url 包含重定向页面的 JavaScript 代码。这是 jacascript 代码:

<script type="text/javascript">
        if (!document.cookie || document.cookie.indexOf('AVPDCAP=') == -1)
        { document.write('<scr'+'ipt src="http://some_link_here+Math.floor(89999999*Math.random()+10000000)+'&millis='+new Date().getTime()+'&referrer='+encodeURIComponent(document.location)+'" type="text/javascript"></scr'+'ipt>'); }
</script>

当我尝试将 javascript 代码加载到我的 web View 中时,如下所示:

String data = javascript_code_above;
topBannerWV.loadDataWithBaseURL("", data, "text/html", "UTF-8", null);

其中 data 是这段 JavaScript 代码,它不会加载页面。我还尝试了以下方法:

topBannerWV.loadDataWithBaseURL("", data, "text/javascript", "UTF-8", null);

但这一次文本被加载到 webview 中。谁能帮我解决这个问题吗?

谢谢。

最佳答案

我正在做这样的事情,它工作得很好:

 webView.loadUrl("file:///android_asset/html.html");
webView.setWebViewClient(new WebViewClient() {

public void onPageFinished(WebView view, String url) {
    try {           
                webView.loadUrl("javascript:init('" + some parameter + "')");

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
});

html 文件中的脚本是:

<script type="text/javascript">
function init(val){
document.getElementById('content').innerHTML=val;
}
window.addEventListener('load',function(){
	console.log("Window Loader");
	init();
});
</script>

关于javascript - 如何将 javascript 重定向加载到 android webview 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30660421/

相关文章:

javascript - 无法组合 2 个选择器

java - Android静态库方法无法调用

javascript - 为什么 Android webview 的 visibilitychange 事件不会触发?

javascript - 确认框定制?

javascript - 如何使用 RxJs 运算符进行递归 HTTP 调用?

javascript - Qtip2 工具提示不定位

java - com.google.firebase.FirebaseException : An internal error has occurred. [ 7: ]

Android:具有多个可点击按钮的 ListView 元素

javascript - 将超文本链接的点击重新路由到外部URL,而不是到Electron应用程序之外的其他浏览器

android - 地理位置不适用于 webview android