BoneMobile容器SDK为可选模块,提供了加载插件的功能。如果您需要开发或者使用插件,则需要在App中集成BoneMobile容器SDK。
依赖SDK | 概述 |
API通道 | 提供API通道能力 |
Google Play已于2019年8月1日停掉尚未支持64位体系的App,如果您App要在中国内地之外的国家和地区(包括港澳台地区)的Google Play应用商店上架,且用到了BoneKit SDK,那需要尽快升级,以免无法上架。后续如果推出新插件或老插件升级,仅针对已升级到v0.59 BoneKit SDK的自有App。
初始化
初始化的操作请参见SDK初始化。
使用方式
打开插件面板
// 第一参数,当前上下文,通常是 Activity // 第二参数,格式为“link://plugin/{插件 Id}”, 可以参见想要打开的插件的具体说明,以下以打开国内配网插件为例 Router.getInstance().toUrl(context, "link://router/connectConfig"); // "link://plugin/a123kfz2KdRdrfYc"已不再推荐使用
打开插件面板并接收返回值
请参见调用配网插件,并接受配网结果的示例。
// 启动插件 Bundle bundle = new Bundle(); bundle.putString("productKey", pk); Router.getInstance().toUrlForResult(activity, "link://router/connectConfig",{your_request_code}, bundle); // 接收配网结果 protected void onActivityResult(int requestCode, int resultCode, Intent data) { ... if (REQUEST_CODE_PRODUCT_ADD == requestCode) { if (Activity.RESULT_OK != resultCode) { // 配网失败 return; } String productKey = data.getStringExtra("productKey"); String deviceName = data.getStringExtra("deviceName"); // 配网成功 } }
打开调试面板
请参见如下代码使用本地调试功能。
String ip = "{IP地址}"; //开发电脑上要开启 Bone 调试服务 new BoneDevHelper().getBundleInfoAsync(this, ip, new BoneDevHelper.OnBondBundleInfoGetListener() { @Override public void onSuccess(BoneDevHelper.BoneBundleInfo boneBundleInfo) { BoneDevHelper.RouterInfo info = new BoneDevHelper().handleBundleInfo(MainActivity.this, boneBundleInfo); if (null == info) { return; } Router.getInstance().toUrl(MainActivity.this, info.url, info.bundle); } @Override public void onError(String message, Exception e) { Toast.makeText(MainActivity.this, message, Toast.LENGTH_SHORT).show(); if (null != e) { e.printStackTrace(); } } });
集成账号能力
插件中如果需要访问当前用户相关信息(例如:当前用户是否登录,用户的昵称是什么等),需要集成账号及用户 SDK,并注册API到容器。
账号SDK的集成请参见账号及用户SDK。
API注册到容器,请参考如下代码如下。
BonePluginRegistry.register(BoneUserAccountPlugin.API_NAME, BoneUserAccountPlugin.class);
集成物模型能力
插件中如果需要使用物模型API(如设备面板的场景),则需要集成物模型SDK,并注册API到容器。
物模型SDK的集成,请参见物模型SDK。
API注册到容器,请参考如下代码。
BonePluginRegistry.register("BoneThing", BoneThing.class);
集成配网能力
插件中如果需要使用配网能力,则需要集成配网SDK,并注册API到容器。
配网 SDK 的集成,请参见配网SDK。
API 的注册,请参考如下代码。
BonePluginRegistry.register("BoneAddDeviceBiz",BoneAddDeviceBiz.class);
BonePluginRegistry.register("BoneLocalDeviceMgr",BoneLocalDeviceMgr.class);
BonePluginRegistry.register("BoneHotspotHelper",BoneHotspotHelper.class);
// 如果需要绑定蓝牙设备,需要添加如下代码
BonePluginRegistry.register("BoneThing", BoneThing.class);
集成长连接能力
插件中如果需要订阅云端消息,则需要集成长连接通道 SDK,并注册 API 到容器。
长连接通道 SDK 的基础,请参见长连接通道SDK。
API 的注册,请参考如下代码:
BonePluginRegistry.register("BoneChannel", BoneChannel.class);
Native和JS共享配置
某些业务场景下, Native 端和 JS 端可能需要共享一些配置。为了满足这个需求,我们开辟了一个 Native 和 JS 都可以访问的配置区。
JS 端访问配置区,请参见:环境配置信息。
Android 端访问配置区,可以参考如下代码:
// 设置
BoneConfig.set("region", "china");
// 获取
String region = BoneConfig.get("region");
支持GIF WebP
Android平台下,默认不支持GIF、WebP格式。可以增加支持库如下。
dependencies {
compile 'com.facebook.fresco:animated-gif:0.11.0' //需要GIF动画支持添加本行语句
compile 'com.facebook.fresco:webpsupport:0.11.0' //需要WebP格式支持添加本行语句
compile 'com.facebook.fresco:animated-webp:0.11.0' //需要WebP动画支持添加本行语句
}
混淆配置
请参见混淆配置。