【问题标题】:external link content not appearing inAppBrowser view外部链接内容未出现在 AppBrowser 视图中
【发布时间】:2017-05-02 12:09:16
【问题描述】:

我构建了一个应用程序,用户可以在其中上传任何类型的文档。成功上传后,我将相应的 url 作为响应发回。通过使用该响应,我以预览模式显示上传的文档。现在我的问题是

单击该预览后,我想通过使用 inAppBrowser cordova 插件在应用程序而不是移动浏览器中显示该文档。为此,我编写了以下代码。它在 IOS 设备而不是 android 中按我预期的方式工作。为了调试用例,我只是硬编码了一些谷歌图片 url 并尝试了 .即使在 android 中,我也可以看到该图像 inAppBrowser 视图。只有用户通过我的应用程序上传的文档存在问题。

window.open(url, '_blank');

如果权限方面有问题,即使在 IOS 中它也不应该工作,但它正在工作。所以我猜Android有问题。我怎样才能做到这一点。

如下所示,当我点击外部链接时。我看不到内容,但我可以看到网址。

谢谢

【问题讨论】:

  • 要在应用程序内打开文件,我认为您可以使用cordova -plugin-file-opener2。

标签: android cordova phonegap-plugins inappbrowser phonegap


【解决方案1】:

编辑

您可能需要添加白名单插件。这可以解释为什么它可以在 iOS 上运行,但不能在 android 上运行。

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/

安装

 cordova plugin add cordova-plugin-whitelist

然后在您的配置 xml 中检查您是否有这一行:

 <access origin="*" />

原创

你有没有像这样将应用内浏览器挂接到 window.open ?

window.open = cordova.InAppBrowser.open;

这将使任何 window.open 调用能够路由到应用内浏览器。

您还需要将 location 参数添加到 window.open 调用:

window.open(url, '_blank', 'location=yes');

还要确保在使用 window.open 方法之前等到 deviceready 触发。我发现有些设备加载插件的速度比其他设备快。

【讨论】:

  • 已编辑以添加更多信息,如果有帮助,请告诉我。
  • 尝试了你的方法,但没有运气,我想根据@jcesarmobile 评论这在 android 中是不可能的。
  • 白名单不影响inAppBrowser。问题是 Android WebView 无法呈现这些文件。
【解决方案2】:

问题是Android webview,它不能渲染一些文件(大部分),只是简单的文件,比如图像,也许还有txt。

您的选择是使用'_system' 而不是'_blank',这将向系统启动一个意图,以便其他应用程序可以打开该文件。另一种选择是使用文件打开器插件而不是 inAppBrowser 插件(有很多文件打开器插件)

【讨论】:

  • 根据您的方法,即使是硬编码的图像 url 也不应该出现在 webView 中,但它会出现。任何原因。
  • 我说,它只能渲染一些简单的文件,比如图片,可能还有txt文件,而不能渲染复杂的文件,比如pdf或者doc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2012-02-08
相关资源
最近更新 更多