更新记录

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:支持 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


项目说明

<!--本插件适用于Android双屏异显,异触。主屏和副屏之间可以事项数据双向同步以及发送。-->

<!--副屏是Android 原生webview 实现,数据相互传输无需socket那么繁琐即可实现数据交互.-->

<!--主要用于双屏收银、双屏pos机等控制主屏和副屏显示视图异同。-->

概览

avatar

打包说明

若打包遇到如下错误提示打包失败

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"
        }

隐私、权限声明

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

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> <uses-permission android:name="android.permission.TYPE_APPLICATION_OVERLAY"/> <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>

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

插件不采集任何数据

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

本插件不包含任何广告

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