我构建了一个应用程序,用户可以上传任何类型的文档。成功上传后,我发回相应的网址作为回复。通过使用该响应,我在预览模式下显示上传的文档。现在我的问题是
点击该预览后,我想通过使用inAppBrowser cordova插件在App而不是移动浏览器中显示该文档。为此,我写了下面的代码。它正如我在IOS设备中所期望的那样工作,而不是在android中。为了调试用例,我只是对一些谷歌图片网址进行了硬编码并尝试了。我甚至可以在android中看到图像 inAppBrowser 视图。用户通过我的应用程序上传的文档只有问题。
window.open(url, '_blank');
如果w.r.t权限有问题,即使在IOS中它也不起作用但是它正在工作。所以我猜Android有问题。我怎样才能做到这一点。
如下所示,当我点击外部链接时。我无法看到内容,但我可以看到网址。
由于
答案 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插件(有很多文件打开器插件)