更新记录
1.0.1(2020-08-11) 下载此版本
添加 shell命令
1.0.0(2020-07-27) 下载此版本
发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
√ | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择
使用方法
使用这个插件的app在更新apk安装完成时会自启动,静默安装时设备必须root
引用方式
const packageManager = uni.requireNativePlugin('Fvv-UniPackageManager')
API
//检查设备是否已经root
isRoot()
//安装
install(path,callback)
//卸载
uninstall(packageName,callback)
//打开app
openApp(packageName,extra)
//打开指定app应用信息页面
startInstalledAppDetails(packageName)
//获取当前窗口显示的app包名
getTopPackageName()
//检查指定app是否运行
isRunning(packageName)
//检查是否安装了指定app
checkPackageInstall(packageName)
//获取app列表
getAppList(callback)
//运行shell命令
shell(object,callback)
检查设备是否已经root
isRoot()
示例
console.log(packageManager.isRoot())
安装应用
install(path,callback)
已root设备静默安装,否则需要手动确定
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | apk绝对路径,使用uni下载的需要使用 plus.io.convertLocalFileSystemURL转换成绝对路径 |
callback | function | 否 | 回调函数 |
callback(obj)
参数 | 类型 | 说明 |
---|---|---|
obj | object | 返回调用状态,不能用于判断安装成功 |
示例
packageManager.install("/sdcard/1.apk",(res) => {
console.log(res) //具体返回值需自行测试
})
卸载应用
uninstall(packageName,callback)
已root设备静默卸载,否则需要手动确定
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
packageName | string | 是 | 要卸载的安卓包名 |
callback | function | 否 | 回调函数 |
callback(obj)
参数 | 类型 | 说明 |
---|---|---|
obj | object | 返回调用状态,不能用于判断卸载成功 |
示例
packageManager.uninstall("com.example.uniplugin_packagemanager",(res) => {
console.log(res) //具体返回值需自行测试
})
打开app
openApp(packageName,extra)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
packageName | string | 是 | 安卓包名,也可以是 url scheme |
extra | jsonObject | 否 | 传递参数,json对象 |
示例
packageManager.openApp("com.android.browser")
打开指定app应用信息
startInstalledAppDetails(packageName)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
packageName | string | 是 | 安卓包名 |
示例
packageManager.startInstalledAppDetails("com.android.browser")
获取当前窗口显示的app包名
getTopPackageName()
示例
console.log(packageManager.getTopPackageName())
检查指定app是否运行
isRunning(packageName)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
packageName | string | 是 | 安卓包名 |
示例
console.log(packageManager.isRunning("com.android.browser"));
检查是否安装了指定app
checkPackageInstall(packageName)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
packageName | string | 是 | 安卓包名 |
示例
console.log(packageManager.checkPackageInstall("com.android.browser"));
获取app列表
getAppList()
返回值 jsonArray
参数 | 类型 | 说明 |
---|---|---|
packageName | string | 安卓包名 |
appName | string | app应用名 |
version | string | 版本号 |
isSystem | bool | 是否为系统应用 |
示例
packageManager.getAppList(res => {
console.log(res)
})
运行shell命令
shell(object,callback)
参数说明
object
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
command | string | 是 | 要执行的shell命令 |
root | bool | 否 | 是否以root运行 |
callback(obj)
参数 | 类型 | 说明 |
---|---|---|
obj | object | 返回shell调用结果 |
示例
packageManager.shell({
command:"echo root",
root:true
},res => {
console.log(res)
})