点击登录

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

墨伊slowpot

Lv.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,所以帮你们打包好了,快说谢谢墨伊
 

附件

最后编辑:
如你所见,这是一个关于小米手环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,所以帮你们打包好了,快说谢谢墨伊
谢谢果冻(雾)
 
谢谢

如你所见,这是一个关于小米手环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,所以帮你们打包好了,快说谢谢墨伊
 
如你所见,这是一个关于小米手环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,所以帮你们打包好了,快说谢谢墨伊
支持一下
 
如你所见,这是一个关于小米手环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,所以帮你们打包好了,快说谢谢墨伊
...
 
如你所见,这是一个关于小米手环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
 
如你所见,这是一个关于小米手环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
 
如你所见,这是一个关于小米手环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
 
如你所见,这是一个关于小米手环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
 
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,所以帮你们打包好了,快说谢谢墨伊
 

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

相似主题

Home 首页
Home 资源
News 发现
Account 我的
顶部