更新记录
2.0(2021-12-08)
优化业务修复bug
1.0.6(2021-11-25)
双屏异显异触-主副屏相互通讯 安卓收银机 pos机
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 11.0 | 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原生插件配置”->”云端插件“列表中删除该插件重新选择
项目说明
<!--本插件适用于Android双屏异显,异触。主屏和副屏之间可以事项数据双向同步以及发送。-->
<!--副屏是Android 原生webview 实现,数据相互传输无需socket那么繁琐即可实现数据交互.-->
<!--主要用于双屏收银、双屏pos机等控制主屏和副屏显示视图异同。-->
概览
打包说明
若打包遇到如下错误提示打包失败
uses-sdk:minSdkVersion 19 cannot be smaller than version 20 declared in library [uniplugin_lysdk-release.aar] /home/[Name]/AndroidManifest.xml as the library might be using APIs not available in 19
Suggestion: use a compatible library with a minSdk of at most 19,
or increase this project's minSdk version to at least 20,
manifest.json中添加如下配置
"android" : {
"minSdkVersion" : 20
}
接口概述
功能 | 方法 | 参数 | 必填 |
---|---|---|---|
打开副屏 | openSecondScreen | json对象{} | 否 |
主屏给副屏发送消息 | sendDataToSecondScreen | json对象数据{} | 是 |
主屏关闭副屏 | closeSecondScreen | 无 | 否 |
主屏接收副屏数据 | [见主屏项目说明4说明] | - | - |
副屏接收主屏消息 | [见副屏项目1.1说明] | - | - |
副屏给主屏发送消息 | [见副屏项目1.2说明]window.lyjsdk.sendToFirstScreen | - | - |
主屏项目说明
1.引入 module
var LySDKModule = uni.requireNativePlugin('LY028-NativeSdk');
2.打开副屏
LySDKModule.openSecondScreen({
url: url ,//副屏url
aaa: 1
},ret => {
uni.showToast({
icon: 'none',
title: ret
});
}
);
副屏url说明:
1.1副屏url可以为网络地址如:http://www.baidu.com
1.2也可以为项目本地网页 网页请放至于static目录下或者/hybrid/html/目录下 若用本地网页url填写为:如:
//若副屏网页项目位于项目/static/或者/hybrid/html/目录下 url传以下值
plus.io.convertLocalFileSystemURL("/hybrid/html/index.html")
//
plus.io.convertLocalFileSystemURL("/static/index.html")
3.主屏发送数据给副屏
LySDKModule.sendDataToSecondScreen({ a: '1111' }, ret => {
uni.showToast({
icon: 'none',
title: ret
});
});
4.接收副屏发来的数据 receiveData
plus.globalEvent.addEventListener('receiveData', function(e) {
uni.showToast({
icon: 'none',
title: 'receiveData收到副屏发来的消息:' + e
});
});
5.关闭副屏
LySDKModule.closeSecondScreen();
副屏项目说明
1.副屏为网页项目
1.1接收主屏消息 (如果副屏项目用vue编写则,挂载window下的 receiveData函数 window.receiveData函数)
//副屏接收主屏消息示例
window.receiveData =function(result){
uni.showToast({
icon:'none',
title:result
})
}
1.2发送消息给主屏
//副屏发送消息给主屏
window.lyjsdk.sendToFirstScreen('我是副屏发来的消息');
2.副屏可以为vue-cli或者其它网页项目,亦可是uniapp网页(若为uniapp网页打开出现白屏请按以下步骤解决)
若副屏项目使用uniapp发布的网页解决白屏 问题
在mainfest.json中h5节点配置 解决本地打开白屏
//mainfest.json配置防止uniapp白屏 其它项目白屏亦如此类
"h5" : {
"title" : "test",
"router" : {
"mode" : "hash",
"base" : "./"
},
"publicPath":"./",
"domain" : "http://www.baidu.cn"
}