2017-05-02 18 views
-1

我构建了一个应用程序,用户可以在其中上载任何类型的文档。上传成功后,我发回相应的网址作为回应。通过使用该响应,我以预览模式显示上传的文档。现在我的问题是外部链接内容未出现在应用程序浏览器视图

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

​​

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

它看起来像下面,当我点击外部链接。我无法看到内容,但可以看到URL。

enter image description here

感谢

+1

要打开应用程序内的文件,我认为你可以使用cordova -plugin-file-opener2。 – CodeWriter

回答

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 = cordova.InAppBrowser.open; 

这将使任何window.open调用路由到应用程序浏览器。你

还需要将位置参数添加到window.open电话:

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

此外,还要确保你正在等待,直到deviceready已经使用window.open方法之前被解雇。我发现一些设备比其他设备更快地加载插件。

+0

是的,我做到了,但没有运气。 – subbu

+0

编辑添加更多信息让我知道它是否有帮助。 –

+0

我只是试过你的方法,但没有运气:( – subbu

0

问题是Android的webview,它不能渲染一些文件(大多数),只是简单的文件,如图像和可能txt。

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

+0

根据你的方法,即使硬编码的图像url也不应该在webView中出现,但它出现了,任何原因。 – subbu

+0

我说,它可以只渲染一些简单的文件,如图像和可能的txt文件,但不是像pdf或doc这样的复杂文件 – jcesarmobile

相关问题