更新记录
1.0.2(2022-09-06)
增加app后台回到前台、退出app、重启app、启动app等接口
1.0.1(2022-02-25)
增加复制、粘贴
1.0.0(2022-02-14)
相机定位等权限判断、 文本图片分享、word/pdf等文件浏览、打印、 发送短信邮件, 打开设置里app权限页、 获取IP,版本配置信息,安装apk 截屏、播放音效
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
前言
wrs-systemutils相机定位等权限判断、文本图片分享、word/pdf等文件浏览、打印、发送短信邮件,打开设置里app权限页、获取IP,版本配置信息,安装apk、截屏、播放音效
权限模块
ios、Android的权限都需要在项目的manifest.json的App权限配置里先配置权限
- Android请求权限
var params = {};
var requestCode = this.requestCode;
params.permissions = permissions; // 这里的权限名称参考manifest.json,源码视图里的Android-permissions
params.requestCode = requestCode; // 请求码
systemutils.requestPermissions(params, (resp) => {
if (resp.requestCode == requestCode) {
var permissions = resp.permissions;
var grantResults = resp.grantResults;
var length = grantResults.length;
var grantAll = true; // 用户是否全部权限都授权了
var content = "";
for (var i = 0; i < length; i++) {
var grantResult = grantResults[i];
var permission = permissions[i];
if (grantResult == 0) { // 用户授权了此权限
content += permission + ":" + "已授权\n";
} else {
content += permission + ":" + "被拒绝\n";
grantAll = false;
}
}
var title = "";
if (grantAll) {
title = "有权限";
} else {
title = "无定位权限,是否开启?";
}
uni.showModal({
title: title,
content: content,
success: function(res) {
if (res.confirm && !grantAll) {
systemutils.openAppSetting();
}
}
});
}
});
- Android检查权限
检查权限API基本上用不到,业务中某些需要鉴别权限的话直接使用请求权限API即可
var params = {};
params.permissions = this.permissions;
var resp = systemutils.checkSelfPermission(params);
if (isString(resp)) {
resp = JSON.parse(resp);
}
var permissions = resp.permissions;
var grantResults = resp.grantResults;
var length = grantResults.length;
var grantAll = true; // 用户是否全部权限都授权了
var content = "";
for (var i = 0; i < length; i++) {
var grantResult = grantResults[i];
var permission = permissions[i];
if (grantResult == 0) { // 用户授权了此权限
content += permission + ":" + "有权限\n";
} else {
content += permission + ":" + "无权限\n";
grantAll = false;
}
}
var title = "";
if (grantAll) {
title = "当前业务拥有所需权限,可以执行对应业务";
} else {
title = "当前业务所需权限不足,是否请求权限?";
}
var _this = this;
uni.showModal({
title: title,
content: content,
success: function(res) {
if (res.confirm) {
_this.requestPermissions();
}
}
});
- Android是否需要显示定位权限
var params = {};
params.permissions = this.permissions;
var resp = systemutils.shouldShowRequestPermissionRationale(params);
if (isString(resp)) {
resp = JSON.parse(resp);
}
var permissions = resp.permissions;
var shows = resp.shows;
var length = shows.length;
var content = "";
for (var i = 0; i < length; i++) {
var show = shows[i];
var permission = permissions[i];
if (show) { // 应用第一次请求过此权限,但是被用户拒绝了
content += permission + ":" + "第一次时询问时被用户拒绝\n";
} else { // 应用第一次请求此权限时被用户拒绝,第二次再请求此权限时,用户勾选了权限请求对话框的“不再询问”
content += permission + ":" + "第二次时询问时用户选择了'不再询问'\n";
}
}
var title = "是否需要显示请求权限弹框";
uni.showModal({
title: title,
content: content,
success: function(res) {
}
});
- 常用的iOS、Android业务权限方法参考demo,业务权限包含:
- 定位权限
- 相机权限
- 相册权限
- 蓝牙权限
- 麦克风MIC权限
- 通讯录权限
- 消息通知权限
- Android其他权限名称参考manifest.json,源码视图里的Android-permissions
- 当检查到没有权限时,跳转到app设置页面来开启权限
systemutils.openAppSetting();
系统分享
功能代码参考demo
- 分享文本
- 分享图片
- 分享文件
- app内浏览图片、word、excel、ppt、pdf等文件
- 使用第三方app打开文件
- iOS打印
- 判断 App 是否处于前台
系统功能模块
功能代码参考demo
- 打开app的设置页
- 打开系统设置页
- 浏览器打开url
- ios打开appstore商店某个应用的主页
- 发送email邮件
- 发送短信
- 拨打电话
系统功能模块
功能代码参考demo
- 获取本机IP
- 获取设备信息,如UUID、mac、deviceId、手机系统版本、手机名称
- 获取app信息,如app版本名、app版本code
- 获取当前系统语言
- Android判断是否安装了某个app
- Android安装apk
- app是否在前台运行
var params = {
packageName: "com.wrs.ccc"
}
var resp = systemutils.isAppForeground(params)
if (isString(resp)) {
resp = JSON.parse(resp);
}
if(resp.isAppForeground == 0) { // 前台运行
} else if(resp.isAppForeground == 2) { // 后台运行
} else { // 不活跃
}
- app是否在运行中,仅支持android
var params = {
packageName: "com.wrs.ccc"
}
var resp = systemutils.isAppRunning(params)
if (isString(resp)) {
resp = JSON.parse(resp);
}
if(resp.isAppRunning ) { //
} else { //
}
- 启动运行app,仅支持android
var params = {
packageName: "com.wrs.ccc"
}
systemutils.launchApp(params)
- 重启app,仅支持android
var params = {
isKillProcess: true // 是否杀了当前进程
}
systemutils.relaunchApp(params)
- 退出app
systemutils.exitApp()
- 后台运行app返回到前台运行,仅支持android
var params = {
packageName: "com.wrs.app"
}
systemutils.appBackForeground(params)
屏幕截屏 复制、粘贴
功能代码参考demo
播放音效
功能代码参考demo
- 播放自定义的音效
- 播放系统音效,如邮件、短信、铃声、通知等音效
- 震动
支持定制,联系方式 QQ:252797991