我正在尝试在Playbuzz
WebView
内容的脚本内容
我找到了一种方法来加载网页的网址包含脚本:
String urlPlayBuzz = "http://www.jorgesys.com/playbuzzcontent.html";
webview.loadUrl(urlPlayBuzz);
但要求只加载脚本并显示playbuzz
内容:
String script = "<center style=\"width:100%;\"><script> (function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id))return;js=d.createElement(s);js.id=id;js.src='//embed.playbuzz.com/sdk.js' ;fjs.parentNode.insertBefore(js,fjs);}(document, 'script' , 'playbuzz-sdk' ));</script><div class=\"playbuzz\" data-id=\"9ed89fec-22cb-441e-b2a3-69b3bd1e6953\" data-show-info=\"false\" data-show-share=\"false\" style=\"width:100%;height:56.25vw\"></div></center>";
我尝试过这两个选项:
webview.loadUrl(script);
和
webview.loadData(script,"text/html","UTF-8");
没有成功我只有一个空的WebView
:
如何加载playbuzz内容的脚本并将其显示在WebView
?
答案 0 :(得分:1)
好吧,我发现我的脚本包含相对路径,如:
js.src='//embed.playbuzz.com/sdk.js'
与仅包含绝对路径的twitter或instagram的嵌入式脚本不同的东西。
所以我使用了这种方法:
loadDataWithBaseURL()使用baseUrl作为内容的基本URL,将给定数据加载到此WebView中。基本URL既用于解析相对URL,也用于应用JavaScript的相同源策略。 historyUrl用于历史记录条目..
您可以定义内容的基本网址:
webview.loadDataWithBaseURL("https://embed.playbuzz.com.com", url, "text/html", "UTF-8", null);
现在我可以加载包含相对路径的脚本的内容!!!。