2014-02-27 87 views
1

我的Android應用程序中有一個WebView,我使用庫jsoup從HTML頁面提取了一個「div」。在這個「格」,我有一個執行一些JavaScript腳本,但問題是腳本的網址:在WebView中將模式協議更改爲http:// Android

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

我沒有「//」之前的任何協議,因此該腳本沒有按」 t加載,我想在腳本的url之前添加「http」協議。有任何想法嗎?

謝謝大家,

PS:這是我的第一篇文章:)

回答

0

使用WebView.loadDataWithBaseURL()功能來指定一個基本URL。實際上,「//」是有效的,並且意味着「使用與基本URL相同的協議,但是與給定的域使用相同的協議。」通過使用「loadDataWithBaseURL」而不是其他加載方法,WebView應該能夠使用您指定的基本URL來解決此問題。

+0

謝謝您的快速answer.In事實上,我已經嘗試過這個功能,但我不知道我必須在baseUrl中放置什麼。有我的函數loadDataWithBaseURL(): webDisqus.loadDataWithBaseURL(「http:」,結果,「text/html」,「UTF-8」,null); – kminhtri

+0

這取決於「結果」代表的頁面。如果有結果的在線表示,則應使用該URL。 –

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>"; 

希望可幫助:)