将 instagram 嵌入 Android WebView
Posted
技术标签:
【中文标题】将 instagram 嵌入 Android WebView【英文标题】:Embed instagram into Android WebView 【发布时间】:2015-06-06 18:33:43 【问题描述】:我有一个带有 WebView 的 android 应用程序,我在其中显示的内容包括嵌入的推文和嵌入的 instagram 照片。
在这两种情况下,我都会按照文档中的说明复制块引用,并以这种方式显示:
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 的文档(官方或非官方)。有人知道如何解决这个问题吗?
【问题讨论】:
你解决了什么问题?我将嵌入 instagram html 放入我的WebView
,但我看到的是 instagram 徽标而不是实际图像。
不,抱歉,我找不到解决此问题的方法。
我刚刚尝试将 baseUrl 设置为 https://instagram.com
并且块开始加载图像,但调整大小错误(图像重叠或被剪裁)。
有人有解决方案吗?
【参考方案1】:
在尝试了很多组合并在此处引用其他答案后,这对我有用:
WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadDataWithBaseURL("https://instagram.com", myHtmlString, "text/html", "UTF-8", "");
【讨论】:
我正在尝试将块引用加载到 webview 中,并且 loadDataWithBaseURL() 方法也适用于我。【参考方案2】:您是否尝试使用此链接? https://instagram.com/developer/embedding/
当您尝试嵌入 Instagram 时,我不确定您的“html”参数是什么,但假设您有要嵌入的项目的链接,您可以向 http://api.instagram.com/oembed 发送请求,并附上项目的URL 并获取相关信息(请参阅链接底部的“开发人员嵌入”);收到响应后,您应该能够从 JSON 对象中检索“html”部分并将其作为第二个参数传递给 loadDataWithBaseURL。
此外,我试图在我的 Android 应用程序中嵌入 Instagram 和 Facebook 视频,但无法做到,因为我调用 loadDataWithBaseURL 时使用 null 作为第一个参数,而不是 Instagram/FB URL。今天早些时候我看到你的问题,注意到你的第一个参数和我的不同,所以我改变了它,然后一切正常。所以谢谢你:-)
【讨论】:
也许现在有一个更具体的移动教程,但是当我发布我的答案时,这是我发现在我的移动应用程序中嵌入 Instagram 的唯一方法 - 使用 WebView,因此网络教程很有帮助,或者至少对我来说是..【参考方案3】:我遇到了同样的问题。这里的方法 loadDataWithBaseURL(),在第一个参数中它需要 baseUrl。我在谷歌上搜索过 baseUrl,在某个地方我发现了一些建议,比如它只保留 null,"" 或 Fake://。但我的问题并没有解决,但在那之后,我给了我网站的 baseUrl,从那里嵌入 Instagram 重定向,我解决了我的问题。并且还解决了 Twitter 视频播放问题。
通过 https://developer.android.com/reference/android/webkit/WebView.html at loadData 部分在这里你会明白的。
【讨论】:
以上是关于将 instagram 嵌入 Android WebView的主要内容,如果未能解决你的问题,请参考以下文章