|
- <script type="text/javascript">
- var obj = {
- //"name":"t3-p3hyyy","address":"14:6B:9C:78:4A:B1"
- address : '7C:03:AB:AE:81:AA',
- UUID : '00001101-0000-1000-8000-00805F9B34FB',
- data : 'hello,word',
- isHex : false,
- charset : 'UTF-8',
- bufferSize : 1024,
- isReturnHex : true,
- isNoReturnData : true,
- returnStrCharset : 'UTF-8',
- isConnected: false,
- isConnecting: false,
- isServerClient:true,
- receiveDataArr:[]
- }
- var client={
- type: Object,
- required: true
- }
- var SPPServerTpl = {
- isServerRun: false,
- Server_UUID: "00001101-0000-1000-8000-00805F9B34FB",
- client: null
- }
- var apiready = function(){
- var cxgBluetoothBase = api.require('cxgBluetoothBase');
- var cxgBluetoothClient = api.require('cxgBluetoothClient');
- var cxgBluetoothServer = api.require('cxgBluetoothServer');
- onsyncClientsInfo()
- onsyncServersInfo()
- onsetReadDataCallback(client)
- setReadDataCallbackServerClient()
- }
- //监听蓝牙状态
- // function onisEnabledBluetooth(){
- // // console.log(obj)
- // api.require("cxgBluetoothBase").isEnabledBluetooth({}, function(ret, err) {
- // if (!err) {
- // alert(ret.state);
- // console.log(ret.state)
- // } else {
- // alert("code: " + err.code + " msg: " + err.msg);
- // console.log("code: " + err.code + " msg: " + err.msg)
- // }
- // });
- // }
- //打开蓝牙
- function onopenBluetooth(){
- api.require("cxgBluetoothBase").openBluetooth({}, function(ret, err) {
- if (!err) {
- // alert(ret.state);
- // onstartServer();
- console.log(ret.state)
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- }
- });
- }
- //关闭蓝牙
- function oncloseBluetooth(){
- api.require("cxgBluetoothBase").closeBluetooth({}, function(ret, err) {
- if (!err) {
- alert(ret.state);
- console.log(ret.state)
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //监听蓝牙的状态变化, 多次返回
- // function onlistenBluetoothStatus(){
- // api.require("cxgBluetoothBase").listenBluetoothStatus({}, function(ret, err) {
- // if (!err) {
- // alert(ret.status);
- // console.log(ret.state)
- // } else {
- // alert("code: " + err.code + " msg: " + err.msg);
- // console.log("code: " + err.code + " msg: " + err.msg)
- // }
- // });
- // }
- //获取已经配对的设备
- // function onbondedDevices(){
- // api.require("cxgBluetoothBase").bondedDevices({}, function(ret, err) {
- // if (!err) {
- // console.log(JSON.stringify(ret.data))
- // alert(JSON.stringify(ret.data));
- // } else {
- // alert("code: " + err.code + " msg: " + err.msg);
- // console.log("code: " + err.code + " msg: " + err.msg)
- // }
- // });
- // }
- //搜索蓝牙中
- function onisScanning(){
- api.require("cxgBluetoothBase").isScanning({}, function(ret, err) {
- if (!err) {
- alert(ret.state);
- console.log(ret.state)
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //停止搜索蓝牙
- function onstopScan(obj){
- api.require("cxgBluetoothBase").stopScan({}, function(ret, err) {
- if (!err) {
- alert("搜索成功,请开启蓝牙服务后连接设备")
- console.log(ret.state)
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //搜索蓝牙
- function onscan(){
- api.require("cxgBluetoothBase").scan({}, function(ret, err) {
- if (!err) {
- if (ret.data == "ACTION_DISCOVERY_FINISHED") {
- alert("未搜到相关设备,请重新搜索");
- } else {
- if(ret.data.name == 't3-p3hyyy' || ret.data.name == 'HONOR 9X'|| ret.data.name == '红米手机'){
- obj.address = ret.data.address
- onstopScan()
- }
- console.log(JSON.stringify(ret.data))
- }
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- function ondisconnect(){
- api.require("cxgBluetoothClient").disconnect({
- address: obj.address,
- UUID:obj.UUID
- }, function(ret, err) {
- if (!err) {
- obj.isConnected = false;
- obj.isConnecting = false;
- alert("断开连接成功");
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //发送数据
- function onsendData(){
- var objsendData = obj
- api.require("cxgBluetoothClient").sendData({
- address: objsendData.address,
- UUID:objsendData.UUID,
- data: objsendData.data,
- isHex:false,
- charset:objsendData.charset,
- },function(ret, err) {
- if (!err) {
- alert(`${obj.data}
- 发送成功`);
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //创建蓝牙服务UUID
- function onstartServer(){
- var objsendData = obj
- api.require("cxgBluetoothServer").startServer({
- isNewStartServer: false,
- Server_UUID:SPPServerTpl.Server_UUID
- }, function(ret, err) {
- if (!err) {
-
- if (typeof ret.data == "object") {
- if(ret.data.address){
- let client = obj;
- client.name = ret.data.name;
- client.address = ret.data.address;
- client.isConnected = true;
- SPPServerTpl.client = client
- setReadDataCallbackServerClient(SPPServerTpl)
- // onsetReadDataCallback(client)
- // alert(SPPServerTpl.client.data)
- }
- // alert(JSON.stringify(ret.data));
- // console.log(JSON.stringify(ret))
- // obj.isConnected = true;
- // obj.address = ret.data.address;
- // onsyncClientsInfo()
-
- }
- if (ret.data.disconnectAddress){
- alert("外设断开");
- }
- if (ret.data === true) {
- SPPServerTpl.isServerRun = true;
- // onsetReadDataCallback(client)
- setReadDataCallbackServerClient(SPPServerTpl)
- // onsetReadDataCallback(objsendData)
- alert("创建服务成功");
- }
- } else {
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- //连接蓝牙
- function onconnect(){
- var objsendData = obj
- objsendData.isConnected = false;
- objsendData.isConnecting = true;
- api.require("cxgBluetoothClient").connect({
- address: objsendData.address,
- UUID:objsendData.UUID
- },function(ret, err) {
- if (!err) {
- if (ret.data === true) {
- objsendData.isConnected = true;
- objsendData.isConnecting = false;
- // setReadDataCallbackServerClient()
- onsetReadDataCallback(objsendData)
- // onsyncClientsInfo(objsendData)
- // onsyncServersInfo(objsendData)
- alert("连接成功");
- onsyncServersInfo()
- // add()
- }
- if (ret.data.disconnectAddress) {
- objsendData.isConnected = false;
- objsendData.isConnecting = false;
- alert("断开连接成功");
- }
- } else {
- if(err.code == 5){
- objsendData.isConnected = false;
- objsendData.isConnecting = false;
- alert("该客户端已连接");
- }else{
- objsendData.isConnected = false;
- objsendData.isConnecting = false;
- alert('连接失败,请重新连接');
- console.log("code: " + err.code + " msg: " + err.msg)
- }
- }
- });
- }
- //设置读取数据回调
- function onsetReadDataCallback(objsendData,isHex = false){
- api.require("cxgBluetoothClient").setReadDataCallback(
- {
- address: objsendData.address,
- UUID:objsendData.UUID,
- bufferSize: objsendData.bufferSize,
- isReturnHex: objsendData.isReturnHex,
- isNoReturnData: false,
- returnStrCharset:objsendData.returnStrCharset,
- },
- (ret, err) => {
- if (!err) {
- if (ret.data === true) {
- objsendData.isReturnHex = isHex
- alert("设置成功")
- return;
- }
- if (objsendData.receiveDataArr.length > 20) {
- objsendData.receiveDataArr = [];
- }
- objsendData.receiveDataArr.push(ret.data);
- alert(objsendData)
- // add(objsendData.receiveDataArr)
- // console.log(JSON.stringify(obj))
- } else {
- objsendData.isConnected = false;
- alert("code: " + err.codeJ + " msg: " + err.msg);
- // console.log("code: " + err.code + " msg: " + err.msg)
- }
- });
- }
- function add(receiveDataArr){
- receiveDataArr.forEach((item)=>{
- alert(item)
- })
- // alert(JSON.stringify(obj.data))
- }
- // onsetReadDataCallback()
- //同步数据
- function onsyncClientsInfo(){
- api.require("cxgBluetoothClient").syncClientsInfo({},
- function(ret, err) {
- if (!err) {
- //具体使用方法见demo
- // ret.data[0].isServerClient =obj.isServerClient
- console.log(JSON.stringify(ret.data))
- alert('客户端')
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- }
- });
- }
- //同步服务端数据
- function onsyncServersInfo(){
- api.require("cxgBluetoothServer").syncServersInfo({},
- function(ret, err) {
- if (!err) {
- // ret.data[0].client.isNoReturnData = obj.isNoReturnData
- console.log(JSON.stringify(ret.data));
- alert(JSON.stringify(ret.data));
- alert('服务端')
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- }
- });
- }
- //关闭蓝牙服务
- function onstopServer(){
- api.require("cxgBluetoothServer").stopServer({
- isRemove: false,
- Server_UUID:obj.UUID
- }, function(ret, err) {
- if (!err) {
- alert("服务关闭");
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- }
- });
- }
- //读取数据
- function setReadDataCallbackServerClient(SPPServerTpl,isHex = false){
- api.require("cxgBluetoothServer").setReadDataCallbackServerClient({
- address: SPPServerTpl.address,
- UUID:SPPServerTpl.Server_UUID,
- bufferSize: SPPServerTpl.bufferSize,
- isReturnHex: SPPServerTpl.isReturnHex,
- isNoReturnData: SPPServerTpl.isNoReturnData,
- returnStrCharset: SPPServerTpl.returnStrCharset
- },
- function(ret, err) {
- if (!err) {
- if (ret.data === true) {
- alert("设置成功");
- return;
- }
- alert(ret.data);
- } else {
- alert("code: " + err.code + " msg: " + err.msg);
- }
- });
- }
- // setReadDataCallbackServerClient()
- //发送数据
- // function onsendDataServerClient(){
- // api.require("cxgBluetoothServer").sendDataServerClient({
- // Server_UUID:"00001101-0000-1000-8000-00805F9B34FB",
- // data: "九星",
- // isHex:false,
- // charset:"UTF-8"
- // },function(ret, err) {
- // if (!err) {
- // console.log(JSON.stringify(ret))
- // alert("发送成功");
- // } else {
- // alert("code: " + err.code + " msg: " + err.msg);
- // }
- // });
- // }
- </script>
复制代码 |
|