外部链接内容未出现在AppBrowser视图中

时间:2017-05-02 12:09:16

标签: android cordova phonegap-plugins inappbrowser phonegap

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

点击该预览后,我想通过使用inAppBrowser cordova插件在App而不是移动浏览器中显示该文档。为此,我写了下面的代码。它正如我在IOS设备中所期望的那样工作,而不是在android中。为了调试用例,我只是对一些谷歌图片网址进行了硬编码并尝试了。我甚至可以在android中看到图像 inAppBrowser 视图。用户通过我的应用程序上传的文档只有问题。

window.open(url, '_blank');

如果w.r.t权限有问题,即使在IOS中它也不起作用但是它正在工作。所以我猜Android有问题。我怎样才能做到这一点。

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

enter image description here

由于

2 个答案:

答案 0 :(得分: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方法之前等待设备已经触发。我发现有些设备加载插件的速度比其他设备快。

答案 1 :(得分:0)

问题是Android webview,它无法渲染一些文件(大多数文件),只是像图像和txt这样的简单文件。

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