• 游客,欢迎来到米坛社区。
    米坛社区是大型中文智能穿戴设备交流社区,在这里交流你的极客思想,共同建造我们的智能世界
    为了更加方便的获取支持与帮助,请加入米坛社区官方QQ频道

米环7教程 米环7伴生小程序开发教程 1(未完待续)

墨伊slowpot

LV0
普通成员
UID
85404
2022-06-11
53
23
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
 

附件

  • shared.zip
    12.3 KB · 查看: 32
最后编辑:

xinghengCN

LV1919810
🔥社区作者
普通成员
UID
74708
2021-10-01
248
1,599
Shenzhen,Guangdong,China
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
谢谢果冻(雾)
 

放烟花

LV0
普通成员
UID
196812
2023-02-05
1
0
谢谢

如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
 

万花香

LV0
普通成员
UID
200664
2023-02-10
25
0
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
支持一下
 

李鴻山

LV0
普通成员
UID
171587
2022-12-09
139
2
16
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
...
 
  • 赞
反馈: 额呃呃呃

wubeon

LV0
普通成员
UID
216546
2023-02-26
24
6
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
666
 
  • 赞
反馈: 殇情之

assa

LV0
普通成员
UID
247804
2023-04-06
2
0
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
6
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
6666666666
 

淘汰郎

LV8
🔥社区作者
普通成员
UID
77922
2021-12-01
594
6,239
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
👋👋👋
 

魏百慧

LV0
普通成员
UID
465515
2023-10-14
22
1
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊nb
 

heytang

LV0
普通成员
UID
167921
2022-12-01
4
0
如你所见,这是一个关于小米手环7的含有伴生服务的小程序的开发教程

先让我们来了解一下伴生服务包含了什么
Messaging API ---- 伴生服务通过 Messaging API 模块使用 Zepp 蓝牙通信的能力,与设备应用进行通信
Fetch API ---- Fetch API 可以用于在 JS 中发送 HTTP 请求,「伴生服务」中的 fetch() 用法可以参考FetchAPI - MDN
Settings Storage API ---- settingsStorage API 可以将数据持久化存储于 Zepp App 中

其中,“设备应用”指的是在米环7上的应用,“伴生服务”指的是在Zepp App中静默运行的js代码,“设置应用”指的是应用在Zepp App上的设置页面

如何实现蓝牙通信

准备工作

将官方示例中任意一个的shared文件夹移到你的项目根目录中,以便调用
在app.js中加入以下代码:
import './shared/device-polyfill'

建立连接
在app.js与app-side中对messageBuilder进行实例化,如下所示
app.js:
import './shared/device-polyfill' import { MessageBuilder } from './shared/message' // need to pass in the appId const appId = 27280 const messageBuilder = new MessageBuilder({ appId }) App({ globalData: { messageBuilder: messageBuilder, }, onCreate(options) { console.log('app on create invoke') // establish connection messageBuilder.connect() }, onDestroy(options) { console.log('app on destroy invoke') messageBuilder.disConnect() } })

app-side:
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder() AppSideService({ onInit() { // establish connection messageBuilder.listen(() => {}) }, })

不需要全抄,只需要参考

后续通信
连接建立之后,后续的通信基于事件机制,两端都有监听和派发的方法

page.js:
在顶端加入
const { messageBuilder } = getApp()._options.globalData

监听伴生服务发来的信息:
messageBuilder.on('call',({payload : buf}) =>{ //buf是伴生服务传来的信息,此时还是二进制数据流,需要转换 const data = messageBuilder.buf2Json(buf) }

发送信息到伴生服务:
messageBuilder.request({ method:'GET', params:{ index:0 } }) //根据后续需求决定是否需要异步获取返回的数据

App-side:
在顶端加入
import { MessageBuilder } from '../shared/message' const messageBuilder = new MessageBuilder()

发送信息到手环端
messageBuilder.call({ text: 'Hello Zepp OS' })

接收从手环端发来的信息
messageBuilder.on('request',(ctx)=>{ //此时,ctx是从手环端发来的信息,同样是二进制数据流,需要转换 const payload = messageBuilder.buf2Json(ctx.request.payload) //根据需求决定是否需要返回信息,返回使用ctx.response() })

这是第一篇,明天从学校回来再更新后续两个api的用法,更新完之后可能会整合成一篇文章

二改:
墨伊知道可能有人找不到shared,所以帮你们打包好了,快说谢谢墨伊
nbnb
 

*这是一则由 Google AdSense 自动推荐的广告,与本站无关,不对其真实性与可靠性负责