更新记录

0.1.1(2023-11-24)

0.1.1 (2023-11-23)

  • 增加获取外接存储设备的方法;
  • 在安装APK文件前检查文件是否存在;
  • 增加静默安装;
  • 静默安装完成后,重新启动APP;

0.1.0(2023-10-17)

  1. 基于原生Android开发的 uni-app 插件;
  2. 获取安卓设备的挂载存储设备(内部sd卡、外部sd卡、U盘...);
  3. 安装指定挂载设备上的指定文件,实现在没有外网的工控设备上进行软件升级;
  4. 实现工控设备插入U盘一键升级;

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


dodo-uniplugin-update

插件测试平台

  1. 测试平板:PET_A133、PET_RK3568;

  2. 测试手机:vivo、小米、摩托罗拉;

  3. 测试系统:Android 12;

  4. 设备已root

功能简介

  1. 基于原生Android开发的 uni-app 插件;
  2. 获取安卓设备的挂载存储设备(内部sd卡、外部sd卡、U盘...);
  3. 安装指定挂载设备上的指定文件,实现在没有外网的工控设备上进行软件升级;
  4. 实现工控设备插入U盘一键升级;
  5. 实现静默升级,升级成功后自动重启;
  6. 静默安装其他APP;

使用方法

引用

const updateApp = uni.requireNativePlugin('dodo-uniplugin-update')

API

  1. 获取安卓设备的挂载存储设备方法1(在新版本编译器中云打包后会无法获取,原因未知)

        updateApp.getExternalPathV1((res) => {
            console.log(res) 
            if (res?.success) {
                let list = []
                for (let key in res.obj) {
                    let obj = {
                        path: key,
                        description: res.obj[key]
                    }               
                    list.push(obj)
                }
              console.log(list)  
            }
        })
  2. 获取安卓设备的挂载存储设备方法2(以上方法无效,可试一下本方法)

        updateApp.getExternalPath((res) => {
            console.log(res) 
            if (res?.success) {
                let list = []
                for (let key in res.obj) {
                    let obj = {
                        path: key,
                        description: res.obj[key]
                    }               
                    list.push(obj)
                }
              console.log(list)  
            }
        })
  3. 运行指定目录下的安装文件 (有安装提示)

        let path ="/storage/C688-A3A8" + '/' + "app-update.apk"
        updateApp.installApk(path, (successRes) => {
                console.log(successRes)
            },
            (failRes) => {
                console.log(failRes)
            })  
  4. 运行指定目录下的安装文件 (静默安装,无安装提示,升级安装成功后重启应用)

        let path ="/storage/C688-A3A8/app-update.apk"
        updateApp.installApkSilent(path, (res) => {
            console.log(res)
        })

如果觉得可以就点个👍吧,您的关注就是我们的动力!

有使用问题或项目定制需求,联系微信

  • rick6655(请备注添加原因)

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问