在WebView Android中将架构协议更改为http://

时间:2014-02-27 10:51:25

标签: javascript android http webview protocols

我的Android应用程序中有一个WebView,我从库jsoup中提取了一个来自html页面的“div”。在这个“div”中,我有一些执行的javascript脚本,但问题是脚本的url:

'//' + disqus_shortname + '.' + 'disqus.com' + '/embed.js?pname=wordpress&pver=2.74

我在“//”之前没有任何协议,所以脚本没有加载,我想在脚本的url之前添加“http”协议。有什么想法吗?

谢谢大家,

PS:这是我的第一篇帖子:)

2 个答案:

答案 0 :(得分:0)

使用WebView.loadDataWithBaseURL()功能指定基本URL。事实上,“//”是有效的,意味着“使用与基本URL相同的协议,但使用给定的域”。通过使用“loadDataWithBaseURL”而不是其他加载方法,WebView应该能够使用您指定的基本URL解决此问题。

答案 1 :(得分:0)

找到将Disqus集成到WebView Android中的解决方案:

return "<html><head></head><body><div id='disqus_thread'></div></body>"
            + "<script type='text/javascript'>"
            + "var disqus_identifier = '"
            + idPost
            + "';"
            + "var disqus_shortname = '"
            + shortName
            + "';"
            + " (function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;"
            + "dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';"
            + "(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })();"
            + "</script>";

希望可以提供帮助:)