手機主流通用遠程更新 APP思路
- 對比當前APP與服務器上的json的版本號
- app調用 downloader 下載遠程APP
- app調用 runtime.insatll 安裝遠程APP
可能會遇到的細節問題:
- 下載APP時需要掛在后台下載,不影響當前用戶操作,APP下載完成自動彈出安裝
- 安裝新的APP時,需要把當前運行的APP進行 runtime.quit
- 如果用戶下載完沒安裝,下次檢查更新時無需下載,直接安裝上次下載完的apk即可
- 安裝成功后,自動刪除安裝包。
調用 plus.runtime.install 彈出不了安裝界面問題
參考: https://ask.dcloud.net.cn/article/id-35703__page-9
使用 HbuilderX 離線打包方式,app實現遠程下載調用 plus.runtime.install 安裝程序時,能顯示安裝成功,但是彈不出安裝界面。
- 將build.gradle中的targetSdkVersion調到26或者更高。
- 在Androidmanifest.xml 的
application子節點
下添加provider節點,將里面的XXXX.XXX.XX改成 build.gradle 里的 applicationId。
<provider
android:name="io.dcloud.common.util.DCloud_FileProvider"
android:authorities="XXXX.XXX.XX(當前的應用包名).dc.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/dcloud_file_provider" />
</provider>
- 在Androidmanifest.xml 根節點中添加權限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
- 可以在生成離線打包前,配置 manifest.json 權限
-
手機運行第三方程序安裝
-
重新編譯打包即可彈出安裝界面