WebView不显示twitter小部件

时间:2013-08-20 14:50:34

标签: android twitter webview

我想在我的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用户页面的链接。你知道问题出在哪里吗?

2 个答案:

答案 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);

它可能会有所帮助。