微信小程序框架,简称WMPF,是一种允许硬件在独立于微信客户端的环境下运行微信小程序的运行环境,目前支持安卓设备。
仓库源码:y.wxlbyx.icu
2.小程序源码能力
WMPF上运行的微信小程序与手机客户端的微信小程序相同。通过WMPF,开发者可以将微信平台能力赋能到硬件设备上。详情请参考文末“Beta Beta能力列表”。
三、小程序源码优势
对于硬件开发人员:
●开发成本低:开发者不再需要投入高成本开发或维护App更新,小程序可以在线更新,即更易上手。
●丰富的内容生态:微信小程序生态拥有丰富的内容服务。硬件可以直接在现网运行小程序内容,为用户提供全面的服务。
对于小程序开发者:
●跨端操作:只需一次开发即可实现小程序的多端操作,适配成本低。
●拓展线下场景:小程序从线下场景获得更多流量,通过线下场景吸引用户上线。
4、微信小程序源码使用场景
WMPF小程序硬件框架可应用于Android系统平板电脑、各行业大屏设备等硬件,提供低成本的屏幕交互解决方案。可访问设备包括但不限于:
●智慧零售:收银机/打号机/商场导航屏/自动售货机/点餐平板/互动广告屏等……
●家庭娱乐设备:智能冰箱/儿童平板/跑步机/电视/KTV点唱机等……
●公共服务:医院挂号机/图书租赁设备/画廊卡机等
●办公设备:教育平板/会议终端/会议投影屏等……
5.接入申请
第一步:在官方注册账号注册账号请提前准备好营业执照上传。
第二步:体验产品进入“微信小程序硬件框架-产品使用指南”下载并测试demo,在Android设备上安装demo,然后在硬件设备上体验WMPF能力。
第三步:如需正式使用激活功能,请点击“申请激活”。审核通过后,即可绑定需要在硬件上正式运行的小程序。
第四步:注册设备
只有经过平台认证的设备才能运行。
① 添加设备-请在“首页-设备管理”中添加您要上线的小程序硬件框架的设备类型。
② 添加模型-添加特定模型,在“接入业务模块”项中选择“微信小程序硬件框架”。
③ 注册接口——添加设备和型号后,需要在“首页-上传接口”中配置公共ID AppID,注册后台接口并上传设备ID, 看看如何注册deviceId接口 。
第五步:开发与实现 通过本文档中的以下开发指南,实现了LauncherAPP调用WMPF的能力。
第六步:绑定小程序开发完成后,需要在“微信小程序硬件框架-小程序管理”页面输入手机应用AppID(即LauncherAPP的AppID),绑定要硬件运行的小程序设备。
6.小程序源码开发指南
第 1 步:在目标设备上运行小程序
根据“微信小程序硬件框架”中提供的APK文件,开发者需要将APK安装到Android系统设备上。安装成功后,会将“微信小程序硬件框架”(WMPF)应用到硬件设备上。该应用程序包含小程序运行所需的环境,并且可以响应启动小程序的请求。此应用程序称为 WMPF 服务。
商家需要编写一个发送请求的应用程序。此应用程序称为 WMPF 客户端。
这两个部分都安装在同一个设备中,通过我们定义的Task进行通信。Task可以理解为定义某个服务的API,例如用于激活设备的IPCInvokerTask_ActivateDevice和用于启动小程序的IPCInvokerTask_LaunchWxaApp。
运行一个小程序至少需要四个步骤
① 注册硬件。
② 调用 IPCInvokerTask_ActivateDevice 激活设备。
③ 调用 IPCInvokerTask_Authorize 登录。
④ 调用 IPCInvokerTask_LaunchWxaApp 启动小程序。
a、发送设备激活请求 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
}
);
b、向 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
}
}
);
c、发送启动小程序请求 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
}
}
);
d、当不需要运行小程序时,可以发送取消授权请求: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的代码。
第 2 步:在目标设备上运行小程序
●小程序硬件框架中的API与微信客户端的输入输出相同,您可以按照小程序文档中的说明使用。某些 API 可能尚不支持,例如代码扫描/多线程。具体支持能力请参考附录《Beta Beta版能力列表》
●开发工具与微信开发者工具相同。
第三步:在目标设备上运行小程序 如何在硬件设备上调试小程序
●安装微信开发者工具后,打开项目或修改代码,点击“预览”,将本地代码上传到微信后台服务器生成二维码。开发者可以通过在硬件设备上请求 IPCInvokerTask_LaunchWxaAppByQrCode 发送实时调试。