我想在我的Android应用中通过网络视图显示推特小部件。我生成一个小部件并稍微定制它
<div style='padding-left: 100px;'><a class="twitter-timeline"
href="http://twitter.com/%s"
data-widget-id="<number>"
data-screen-name="%s"
data-chrome="nofooter noborders noheader transparent"
data-related="benward,endform">
<FONT COLOR="FFFFFF">Tweets by @%s</a>
<script>
!function(d,s,id)
{
var js,fjs=d.getElementsByTagName(s)[0],
p=/^http:/.test(d.location)?'http':'https';
if(!d.getElementById(id))
{
js=d.createElement(s);
js.id=id;
js.src=p+"://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}
}(document,"script","twitter-wjs");</script>
我以编程方式从资产中加载它:
WebView webView = (WebView) view.findViewById(R.id.webview);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.getSettings().setJavaScriptEnabled(true);
webView.setBackgroundColor(Color.BLACK);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.e(IrisDelegate.TAG, description);
}
});
try {
StringBuilder builder = new StringBuilder();
InputStream is = getActivity().getAssets().open("twitter.html");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = "";
while ((line = reader.readLine()) != null) {
builder.append(line);
}
String twitter = getArguments().getString(TWITTER);
String data = String.format(builder.toString(), twitter, twitter, twitter);
webView.loadData(data, "text/html", HTTP.UTF_8);
但不幸的是,它没有工作,我只看到我的Twitter用户页面的链接。你知道问题出在哪里吗?
答案 0 :(得分:2)
将此添加到您的html head标记。
<script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script>
立即帮助我!
答案 1 :(得分:0)
我遇到了与iframe相同的问题。我必须在字符串中编写整个iframe块才能使其正常工作。
也尝试添加:
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
它可能会有所帮助。