【问题标题】:Embed instagram into Android WebView将 instagram 嵌入 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 并且块开始加载图像,但调整大小错误(图像重叠或被剪裁)。
  • 有人有解决方案吗?

标签: android webview embed instagram instagram-api


【解决方案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 部分在这里你会明白的。

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 2019-06-15
    • 1970-01-01
    • 2018-07-27
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多