将 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的主要内容,如果未能解决你的问题,请参考以下文章

Instagram 如何在快拍中嵌入可点击文本?

如何将 Instagram 提要嵌入我的网站 [关闭]

将 instagram/youtube 嵌入到 Shiny R 应用程序中

从 API 检索 Instagram 视频嵌入 URL

动态添加嵌入时,Instagram 嵌入不起作用

为啥 instagram 嵌入代码只显示一个 instagram 图标,而不是图像?