我有一个带有WebView的Android应用程序,我在其中显示包含嵌入式twits和嵌入式Instagram照片的内容。
在这两种情况下,我都按照文档中的说明复制了blockquote,并以这种方式显示:
String html = "<!DOCTYPE HTML><html><head><style>a {color:#333333;}</style></head><body>"+content.substring(0, blockquoteEnd)+"<script async src=\"//platform.twitter.com/widgets.js\" charset=\"utf-8\"></script></body></html>";
WebView tText = new WebView(getActivity());
tText.loadDataWithBaseURL("", html, "text/html", "UTF-8", "");
WebSettings webSettings = tText.getSettings();
webSettings.setJavaScriptEnabled(true);
textWrapper.addView(tText);
我的推文仅以纯文本显示,但我用此行修正了这个:
tText.loadDataWithBaseURL("https://twitter.com", html, "text/html", "UTF-8", "");
我试图用Instagram照片做同样的事情:
tText.loadDataWithBaseURL("https://instagram.com", html, "text/html", "UTF-8", "");
但它不起作用,所有Instagram照片只以纯文本显示说明。
我找不到任何关于如何在Android WebViews中嵌入Instagram的文档(官方或非官方)。任何人都知道如何解决这个问题?
答案 0 :(得分:1)
您尝试使用此链接吗? https://instagram.com/developer/embedding/
我不确定你的&#34; html&#34; param是您尝试嵌入Instagram的时候,但假设您有想要嵌入的项目的链接,您可以使用该项目的URL向http://api.instagram.com/oembed发送请求并获取相关信息信息(参见链接的底部,&#34;为开发人员嵌入&#34;);一旦得到回复,您应该能够检索到&#34; html&#34;部分来自JSON对象,并将其作为第二个参数传递给loadDataWithBaseURL。
另外,我试图在我的Android应用程序上嵌入Instagram和Facebook视频而无法,因为我在调用loadDataWithBaseURL时将null作为第一个参数,而不是Instagram / FB URL。今天早些时候我看到了你的问题并注意到你的第一个参数与我的不同,所以我改变了它,然后一切都很好。所以,谢谢你: - )
答案 1 :(得分:0)
我遇到了同样的问题。这里的方法是loadDataWithBaseURL(),在第一个参数中它需要baseUrl。我用google搜索过baseUrl,在某个地方我找到了像只保留null,“”或Fake://的建议。但我的问题没有解决,但在那之后,我给了我的网站baseUrl,从嵌入Instagram重定向,我解决了我的问题。并且Twitter视频播放问题也得到了解决。
在loadData部分浏览https://developer.android.com/reference/android/webkit/WebView.html,您将明白这一点。
答案 2 :(得分:0)
尝试了很多组合并参考了其他答案后,这对我有用:
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadDataWithBaseURL("https://instagram.com", myHtmlString, "text/html", "UTF-8", "");