BoneMobile容器SDK為可選模塊,提供了加載插件的功能。如果您需要開發(fā)或者使用插件,則需要在App中集成BoneMobile容器SDK。
依賴SDK | 概述 |
API通道 | 提供API通道能力 |
Google Play已于2019年8月1日停掉尚未支持64位體系的App,如果您App要在中國內地之外的國家和地區(qū)(包括港澳臺地區(qū))的Google Play應用商店上架,且用到了BoneKit SDK,那需要盡快升級,以免無法上架。后續(xù)如果推出新插件或老插件升級,僅針對已升級到v0.59 BoneKit SDK的自有App。
初始化
初始化的操作請參見SDK初始化。
使用方式
打開插件面板
// 第一參數,當前上下文,通常是 Activity // 第二參數,格式為“l(fā)ink://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地址}"; //開發(fā)電腦上要開啟 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共享配置
某些業(yè)務場景下, Native 端和 JS 端可能需要共享一些配置。為了滿足這個需求,我們開辟了一個 Native 和 JS 都可以訪問的配置區(qū)。
JS 端訪問配置區(qū),請參見:環(huán)境配置信息。
Android 端訪問配置區(qū),可以參考如下代碼:
// 設置
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動畫支持添加本行語句
}
混淆配置
請參見混淆配置。