一、产品概括
小程序硬件框架(Wechat Mini-Program Framework),简称WMPF,是一个运行环境,能让硬件在脱离微信客户端的环境下运转微信小程序,目前已支撑安卓设备
二、产品能力
WMPF上运转的微信小程序,与手机客户端的微信小程序能力同等经过WMPF,开发者可以将微信平台能力给予能到硬件设备上,详情请见文末的《公测Beta版能力列表》
三、产品优势
对于硬件开发者:
- 开发成本低:开发者无需再投入高本钱,对App作开发或保护更新,小程序可以联网更新,纵然更即用
- 内容生态丰富:微信小程序生态中有丰富的内容服务,硬件可以直接运转现网的小程序内容,为用户提供完美的服务
对于小程序开发者:
- 超过终端运行:仅需要完成一次开发,即可实现小程序大都端运转,适配成本低
- 拓展线下场景:小程序得到更多线下场景的流量,通过线下场景将用户引流至线上
四、应用场景
WMPF小程序硬件框架,可以使用在各行各业的安卓体系平板电脑、大屏设备等硬件,提供低成本屏幕互动解决方案,但是接入设备包罗但不限于:
- 聪明零售:收银机 / 排号机 / 商场导航屏 / 自动贩卖机 / 点餐平板 / 互动广告屏幕等…
- 家用及娱乐设备:智能冰箱 / 儿童平板 / 跑步机 / 电视机 / KTV点唱机等…
- 公共服务:病院挂号机 / 图书租赁设备 / 美术馆办卡机等…
- 办公设备:教诲平板 / 集会终端 / 集会投屏等…
五、接入申请
- 第一步:注册账户 在 https://wecooper.weixin.qq.com 注册账户,恳求提早预备营业执照进行上传
- 第二步:体验产品 进入“微信小程序硬件框架-产品使用指引” 下载测试Demo,将Demo装置到安卓设备中,即可在你的硬件设备中体验WMPF能力
- 第三步:开通功用 若需要正式应用,恳求点击“申请开通”,审核经过后即可绑定需要正式在硬件运转的小程序
- 第四步:注册设备
只有通过平台鉴权的设备才但是运转WMPF。
① 添加设备- 恳求在“首页-设备管理”中,添加盼望上线小程序硬件框架的设备类型
② 添加机型- 添加具体机型,“接入业务模块”项勾抉择“微信小程序硬件框架”
③ 注册接口- 完成设备及机型添加后,需要在“首页-上传接口”中,配置民众号AppID,注册后台接口并上传设备ID,查看如何注册deviceId接口
- 第五步:开发实现 通过本文档以下的开发指引局部,实现LauncherAPP调用WMPF的能力
- 第六步:绑定小程序 完成开发后,需要在“微信小程序硬件框架-小程序管理”页面输入移动应用AppID(即便LauncherAPP的AppID),绑定该硬件设备如果运转的小程序查看如何绑定小程序
六、开发指引
第一步:在目标设备上运转小程序
根据“微信小程序硬件框架”内提供的APK 文件,开发者需要将该 APK 装置到 Android 体系的设备中,安装成功后,硬件设备上会晤有应用「微信小程序硬件框架」(WMPF),该应用包含了小程序运转不时需要的环境,并能响应启动小程序的请求这个应用被称作WMPF Service
商户需要编写发送恳求的应用,这个应用被称作WMPF Client
这两局部全体装置在同一部设备中,通过我们界说好的Task进行通信,一个Task可以懂得为一个API,界说了某种服务,比如用于激活设备的IPCInvokerTask_ActivateDevice,用于启动小程序的IPCInvokerTask_LaunchWxaApp
如果惦念运转小程序起码需要四个步调
① 注册硬件。
② 调用IPCInvokerTask_ActivateDevice激活设备
③ 调用IPCInvokerTask_Authorize登录
④ 调用IPCInvokerTask_LaunchWxaApp启动小程序
- 发送设备激活恳求 IPCInvokerTask_ActivateDevice:
注:ProductId,keyVersion,deviceId和signature的获取流程和方法恳求 查看硬件注册流程,以此包管设备合法的前提下,未登录不时也但是运转小程序
代码示例如下:
WMPFActivateDeviceRequest request = new WMPFActivateDeviceRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
request.productId = 1
request.keyVersion = 2
request.deviceId = "Your DEVICE ID"
request.signature = "Your SIGNATURE"
WMPFIPCInvoker.invokeAsync(
request,
IPCInvokerTask_ActivateDevice.class,
new IPCInvokeCallback<WMPFActivateDeviceResponse>() {
@Override
public void onCallback(WMPFActivateDeviceResponse response) {
// process result
}
);
- 发送授权恳求 IPCInvokerTask_AuthorizeNoLogin或者是IPCInvokerTask_Authorize:
注:DeviceTicket和Ticket的获取流程和方法见WMPF Client Demo的示例代码OpenSdkTestUtil.java
代码示例如下:
WMPFAuthorizeNoLoginRequest request = new WMPFAuthorizeNoLoginRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
request.ticket = "Your SDK Ticket"
request.appId = "Your AppId"
request.scope = "snsapi_userinfo,snsapi_runtime_apk"
WMPFIPCInvoker.invokeAsync(
request,
IPCInvokerTask_AuthorizeNoLogin.class,
new IPCInvokeCallback<WMPFAuthorizeNoLoginResponse>() {
@Override
public void onCallback(WMPFAuthorizeNoLoginResponse response) {
// process result
}
}
);
WMPFAuthorizeRequest request = WMPFAuthorizeRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
request.ticket = ticket
request.appId = appId // OpenSDK AppId for App
request.scope = "snsapi_userinfo,snsapi_runtime_apk"
WMPFIPCInvoker.invokeAsync(
request,
IPCInvokerTask_Authorize.class,
new IPCInvokeCallback<WMPFAuthorizeResponse>() {
@Override
public void onCallback(WMPFAuthorizeResponse response) {
// process result
}
}
);
- 发送启动小程序恳求 IPCInvokerTask_LaunchWxaApp:
注:仅在仅在激活设备成功的前提下能调用成功
代码示例如下:
WMPFLaunchWxaAppRequest request = new WMPFLaunchWxaAppRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
request.appId = "Your AppId"
request.path = "Target Wxa Path"
request.isNoLogin = true
WMPFIPCInvoker.invokeAsync(
request,
IPCInvokerTask_LaunchWxaApp.class,
new IPCInvokeCallback<WMPFLaunchWxaAppResponse>() {
@Override
public void onCallback(WMPFLaunchWxaAppResponse response) {
// process result
}
}
);
- 当不需要运转小程序的时分,但是发送撤消授权恳求: IPCInvokerTask_Deauthorize:
代码示例如下:
WMPFDeauthorizeRequest request = new WMPFDeauthorizeRequest()
request.baseRequest = WMPFBaseRequestHelper.checked()
WMPFIPCInvoker.invokeAsync(
request,
IPCInvokerTask_Deauthorize.class,
new IPCInvokeCallback<WMPFDeauthorizeResponse>() {
@Override
public void onCallback(WMPFDeauthorizeResponse response) {
// process result
}
}
);
为快捷体验启动小程序的流程,但是装置附件提供的示例DEMO,运转小程序 但正式环境中,需要根据上述流程去编写发送恳求的应用(但是根据需要自定义启动小程序的交互与界面),具体实现见示例DEMO的代码
第二步:在目标设备上运转小程序
- API 在小程序硬件框架内与微信客户端内的输入输出同等,按照小程序文档中方法利用即可; 有局部 API 可能尚未撑持,例如扫码/多线程,具体支持能力恳求查阅附录 《公测Beta版能力列表》
- 开发工具与微信开发者工具雷同
第三步:在目标设备上运转小程序硬件设备上如何调试小程序
- 装置微信开发者工具,打开项目或者是修改代码后,点击「预览」即可将本地代码上传到微信后台服务器,生成二维码开发者在硬件设备的发送请求应用上,但是通过IPCInvokerTask_LaunchWxaAppByQrCode的恳求,来进行真机调试
- 具体实现但是参考示例DEMO代码-长途调试:
点击查看更多详细开发指引
。