美文网首页
2018-05-29 cordova-bug-fix

2018-05-29 cordova-bug-fix

作者: GeeFib | 来源:发表于2018-05-29 18:36 被阅读30次

    目前公司APP,android 7+ 打开pdf文件时会出现闪退,模拟器跑报错:详细错误内容是因为https://developer.android.com/about/versions/nougat/android-7.0-changes?hl=zh-cn
    android 7+文件目录打开方式变更:

    对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。

    要在应用间共享文件,您应发送一项 content:// URI,并授予 URI 临时访问权限。进行此授权的最简单方式是使用 FileProvider 类。如需了解有关权限和共享文件的详细信息,请参阅共享文件


    所以升级文件相关插件 cordova-plugin-file-transfer 、cordova-plugin-file,inappbrowser ,原来pdf打开方式是使用inappbrowser  :window.open(path, "_system");但是没发现inappbrowser 对android7有支持,更新inappbrowser 后,只是打开pdf不再闪退,但是文件始终打开不成功。

    所以我增加插件cordova-plugin-file-opener2,使用它打开PDF。

    同时文件目录修改为cdvfile://方式。有cdvfile协议去处理android 7+ file://的问题,以下为目前插件版本:

    <plugin name="cordova-plugin-whitelist" spec="1"/>

    <plugin name="cordova-plugin-splashscreen" spec="~5.0.1"/>

    <plugin name="cordova-plugin-camera" spec="~2.2.0"/>

    <plugin name="com.distinctclinic.weixin" spec="file:com.distinctclinic.weixin"/>

    <plugin name="cordova-plugin-inappbrowser" spec="^3.0.0"/>

    <plugin name="cordova-plugin-http" spec="^1.2.0"/>

    <plugin name="cordova-plugin-compat" spec="^1.2.0"/>

    <plugin name="cordova-plugin-file-transfer" spec="^1.7.1"/>

    <plugin name="cordova-plugin-media" spec="git+https://github.com/apache/cordova-plugin-media.git"/>

    <plugin name="cordova-plugin-file" spec="^6.0.1"/>

    <plugin name="cordova-plugin-file-opener2" spec="^2.0.19"/>

    <engine name="ios" spec="^4.5.4"/>

    <engine name="android" spec="^6.4.0"/>

    相关文章

      网友评论

          本文标题:2018-05-29 cordova-bug-fix

          本文链接:https://www.haomeiwen.com/subject/vkwajftx.html