解决方案

小程序硬件框架(WMPF)的出现大大降低了开发成本

作者:仙宝云 | 发布时间:2021-07-02 12:10:17 | 阅读:876

一、产品概括

小程序硬件框架(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启动小程序

  1. 发送设备激活恳求 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
        
    }
);
  1. 发送授权恳求 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
        }
    }
);
  1. 发送启动小程序恳求 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
        }
    }
);
  1. 当不需要运转小程序的时分,但是发送撤消授权恳求: 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代码-长途调试:

点击查看更多详细开发指引

智慧商业服务商仙宝云欢迎您!

请加微信: 18962171986 (宋经理)

在线咨询