更新记录
1.8(2023-10-13)
修复插件Android端录屏用video播放没有声音问题。
1.7(2023-08-23)
增加插件视频录制取消回调事件onCancel
1.6(2023-07-25)
增加ios端锁定屏幕方向更新布局接口lockAntiScreenOrientation(o)。
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
录屏、截屏、保存相册、防录屏截屏uniapp原生插件接口说明
1. 获取插件对象
<script>
//插件对象
var Screen = uni.requireNativePlugin('Yam-Screen');
var that;
export default {
data() {
},
onLoad() {
}
}
</script>
2. 检查权限并授权
//检查权限并授权
Screen.checkPermission(function(res){
console.log(res);
if (res.result == true) {
//成功
}
});
3. 设置录屏音频
//设置录屏音频
var enable = true;//true:开启音频 false:关闭音频
Screen.setAudioEnabled(enable);
4. 开始录屏
startScreenRecordWithFile() {
//开始录屏
var videoPath = plus.io.convertLocalFileSystemURL('_doc/screen_capture_video.mp4');
Screen.setAudioEnabled(true);//true:开启音频 false:关闭音频
Screen.startScreenRecordWithFile(videoPath, function(res){
console.log(res);
if (res.type == "onSuccess") {
//录屏成功,保存视频到相册
var path = res.data;
Screen.saveVideoToAlbum(path);
} else if (res.type == "onFailed") {
//失败
} else if (res.type == "onCancel") {
//取消
}
});
}
5. 停止录屏
//停止录屏
Screen.stopScreenRecord();
6. 截屏
takeScreenShotWithFile() {
//截屏
var imagePath = plus.io.convertLocalFileSystemURL("_doc/screen_shot_img.jpg");
Screen.takeScreenShotWithFile(imagePath, function(res){
console.log(res);
if (res.type == "onSuccess") {
//截屏成功,保存图片到相册
var path = res.data;
Screen.saveImageToAlbum(path);
} else if (res.type == "onFailed") {
//失败
}
});
}
7. 保存图片到相册
//保存图片到相册
var path = plus.io.convertLocalFileSystemURL("_doc/screen_shot_img.jpg");
Screen.saveImageToAlbum(path);
8. 保存视频到相册
//保存视频到相册
var path = plus.io.convertLocalFileSystemURL('_doc/screen_capture_video.mp4');
Screen.saveVideoToAlbum(path);
9. 开启防录屏截屏
注:iOS平台需要iOS13以上有效
//开启防录屏截屏
Screen.openAntiRecordScreen();
10. 关闭防录屏截屏
注:iOS平台需要iOS13以上有效
//关闭防录屏截屏
Screen.closeAntiRecordScreen();
11. 监听截屏录屏回调,仅iOS11以上支持
//监听截屏录屏回调
Screen.setScreenCallback(function(res){
console.log(res);
if (res.type == "onScreenShot") {
//监听截屏回调事件
} else if (res.type == "onScreenCapturedDidChange")) {
//监听屏幕录制回调事件
var isCaptured = res.data;//true:正在录制 false:停止录制
}
});
12. 判断是否在屏幕录制,仅iOS11以上支持
//判断是否在屏幕录制
var ret = Screen.isCaptured();//true:正在录制 false:停止录制
13. 打开相册、图片预览或其他原生界面时开启防录屏,仅android支持
//打开相册、图片预览或其他原生界面时开启防录屏截屏,仅android支持
Screen.setAntiActivityList([
"io.dcloud.feature.nativeObj.photoview.PhotoActivity",
//"io.dcloud.WebAppActivity",
//"io.dcloud.ProcessMediator",
//"io.dcloud.WebviewActivity",
"com.dmcbig.mediapicker.PickerActivity",
"com.dmcbig.mediapicker.PreviewActivity",
"io.dcloud.feature.gallery.imageedit.IMGEditActivity"//,
//"io.dcloud.sdk.activity.WebViewActivity",
//"com.taobao.weex.devtools.toolbox.PerformanceActivity",
//"com.blankj.utilcode.util.PermissionUtils$PermissionActivity"
]);
//设置空即可关闭防录屏截屏
Screen.setAntiActivityList([]);
14. 设置录屏通知相关配置,仅android支持
if (uni.getSystemInfoSync().platform == 'android') {
//设置录屏通知配置,仅android支持
Screen.setRecordConfig({
contentTitle:"默认app名称",
contentText:"正在录屏"
});
}
15. 锁定屏幕方向更新布局接口,仅ios支持
plus.screen.lockOrientation('landscape-primary');
if (uni.getSystemInfoSync().platform == 'ios') {
//锁定屏幕方向更新布局接口,仅ios支持
Screen.lockAntiScreenOrientation(2);//2:锁定横屏 1:锁定竖屏 0:取消锁定
}