增值服务 UI 业务包提供 IPC 增值服务 v2.0 框架下的各类 IPC 增值服务,涵盖了 C 端用户在增值服务购买和使用过程中的全部功能,包括商品展示、下单购买、服务查询和订单展示等。
通过与 IPC 增值服务业务包的对接,您能够快速便捷地集成和应用多项增值服务,例如 IPC 云存储服务、托管服务、视频巡检服务、4G 流量服务以及 AI 事件服务等。
SDK 和 UI 业务包需要更新至 v5.17.0 及以上版本,才能使用增值服务 v2.0。
在集成之前,请先熟悉 UI 业务包 的准备工作和接入流程。详情请参考 框架接入。
在模块 build.gradle 中,配置 dependencies 依赖。
dependencies {
api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
api "com.thingclips.smart:thingsmart-bizbundle-camera"
api "com.thingclips.smart:thingsmart-bizbundle-miniapp"
api "com.thingclips.smart:thingsmart-bizbundle-homekit"
api "com.thingclips.smart:thingsmart-bizbundle-ipckit"
api "com.thingclips.smart:thingsmart-ipcsdk:${ipc_sdk_version}}"
// ... 小程序ui业务包需要集成bizkit
api "com.thingclips.smart:thingsmart-bizbundle-bizkit"
//... 其他配置
api "com.thingclips.smart:thingsmart:${sdk_version}}"
}
UrlRouter.execute(urlBuilder) 进行页面跳转。接口说明
void fetchValueAddedServiceUrl(CameraVASParams params, OperationCallBack callback);
| 参数 | 类型 | 说明 |
|---|---|---|
| params | CameraVASParams | 请求参数 |
| callback | OperationCallBack | 回调 |
CameraVASParams
| 参数 | 类型 | 说明 |
|---|---|---|
| devId | String | 设备 ID |
| spaceId | String | 空间 ID,传入 homeId |
| languageCode | String | 标准语言码 |
| hybridType | int | 程序类型,ThingIPCConstant |
| categoryCode | String | 增值服务品类码,ThingIPCConstant |
| extInfo | Object | 扩展信息 |
增值服务品类码常量
| ThingIPCConstant 常量 | 说明 |
|---|---|
| ThingIPCConstant.CATEGORY_CODE_SECURITY_CLOUD_SERVICE | 云存储服务 |
| ThingIPCConstant.CATEGORY_CODE_AI_SERVICE | AI 事件服务 |
| ThingIPCConstant.CATEGORY_CODE_TRAFFIC_SERVICE | 4G 流量充值服务 |
| ThingIPCConstant.CATEGORY_CODE_AI_INSPECTION_SERVICE | 巡检报告服务 |
程序类型常量
| ThingIPCConstant 常量 | 说明 |
|---|---|
| ThingIPCConstant.HYBRID_TYPE_H5 | H5 页面 |
| ThingIPCConstant.HYBRID_TYPE_MINI_APP | 小程序 |
接口说明
void fetchInspectionDetailUrl(CameraVASInspectionParams params, OperationCallBack callback);
| 参数 | 类型 | 说明 |
|---|---|---|
| params | CameraVASInspectionParams | 请求参数 |
| callback | OperationCallBack | 回调 |
CameraVASInspectionParams
| 字段 | 类型 | 描述 |
|---|---|---|
| spaceId | String | 空间 ID,传入 homeId |
| devId | String | 设备 ID |
| time | long | 时间,从 CameraMessageBean 中获取 |
| reportId | String | 报告 ID,即 CameraMessageBean 的 getExtendParams 属性中的inspectionReportId |
| languageCode | String | 标准语言码 |
| hybridType | int | 程序类型,ThingIPCConstant |
| extInfo | Object | 扩展信息 |
示例代码
CameraVASParams cameraVASParams = new CameraVASParams();
cameraVASParams.devId = mDevId;
cameraVASParams.spaceId = FamilyManagerUtils.getCurrentHomeId()+"";
cameraVASParams.languageCode = "zh";
cameraVASParams.categoryCode = ThingIPCConstant.CATEGORY_CODE_AI_INSPECTION_SERVICE;
cameraVASParams.hybridType = ThingIPCConstant.HYBRID_TYPE_MINI_APP;
ThingIPCSdk.getIPCVAS().fetchValueAddedServiceUrl(cameraVASParams, new OperationCallBack(){
@Override
public void onSuccess(int sessionId, int requestId, String data, Object camera) {
Bundle bundle = new Bundle();
bundle.putString("url", data);
UrlBuilder builder = new UrlBuilder(mContext, "miniApp").putExtras(bundle);
UrlRouter.execute(builder);
}
@Override
public void onFailure(int sessionId, int requestId, int errCode, Object camera) {
}
});
//巡检报告
CameraMessageBean *messageBean;
CameraVASInspectionParams params = new CameraVASInspectionParams();
params.devId = mDevId;
params.spaceId = FamilyManagerUtils.getCurrentHomeId()+"";
params.languageCode = "zh";
params.time = messageBean.getTime();
params.reportId = messageBean.getExtendParams() == null ? "" : String.valueOf(messageBean.getExtendParams().get("inspectionReportId"));
params.hybridType = ThingIPCConstant.HYBRID_TYPE_MINI_APP;
ThingIPCSdk.getIPCVAS().fetchInspectionDetailUrl(params, new OperationCallBack(){
@Override
public void onSuccess(int sessionId, int requestId, String data, Object camera) {
Bundle bundle = new Bundle();
bundle.putString("url", data);
UrlBuilder builder = new UrlBuilder(mContext, "miniApp").putExtras(bundle);
UrlRouter.execute(builder);
}
@Override
public void onFailure(int sessionId, int requestId, int errCode, Object camera) {
}
});
跳转云存储购买页前,请先确认设备是否支持云存储服务,可通过 支持云存储 进行判断。
开通云存储服务后,可以查看和播放云存储视频。详细 API 请参考 云存储。
IPC SDK 7.5.4 以上版本支持该接口。
提供 IPC 增值服务框架下的各类 IPC 增值服务页面跳转链接,在之前的基础上扩展到各类增值服务的首页、商品页、应用页、设置页、订单页、服务页、兑换码页。目前支持的页面如表所示。
| 服务大类 | 增值服务商城首页 | 增值服务商城商品页 | 应用页 | 设置页 | 我的服务 | 我的订单 | 兑换码 |
|---|---|---|---|---|---|---|---|
| 云存储 | Yes | Yes | No | Yes | Yes | Yes | Yes |
| AI Alert | Yes | Yes | Yes | Yes | |||
| 智能识鸟 | Yes | Yes | No | Yes | |||
| 视频巡检 | Yes | Yes | Yes | Yes | |||
| 精彩时刻 | Yes | Yes | Yes | Yes | |||
| 宠物知道 | Yes | Yes | Yes | No | |||
| 4G 流量充值 | Yes | Yes | No | No |
void fetchValueAddedServiceUrlV2(CameraVASParamsV2 params, OperationCallBack callback);
| 参数 | 类型 | 说明 |
|---|---|---|
| params | CameraVASParamsV2 | 请求参数 |
| callback | OperationCallBack | 回调 |
| 字段 | 类型 | 描述 |
|---|---|---|
| homeId | String | 家庭 ID |
| devId | String | 设备 ID |
| sceneCode | String | 场景码 |
| categoryCode | String | 品类码 |
| params | Map<String, String>? | 额外参数 |
| categoryCode 值 | 说明 |
|---|---|
| security_cloud_service | 云存储 |
| ai_alert | AI_ALERT |
| ai_service | 智能识鸟 |
| ai_inspection_service | 视频巡检 |
| ai_highlight_moments | 精彩时刻 |
| ai_pet_know | 宠物知道 |
| traffic_service | 4G 流量充值 |
| sceneCode 值 | 说明 |
|---|---|
| homePage | 首页 |
| commodityPage | 商品页 |
| applicationPage | 应用页 |
| setupPage | 设置页 |
| servicePage | 我的服务 |
| orderPage | 订单页 |
| subscribePage | 订阅页 |
| redeemPage | 兑换码 |
除接口必传参数外,部分页面支持额外参数,需要将参数以键值对形式放 params 参数里传递。
目前,订单页支持 activityKey 参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| activityKey | String | order 表示选中订单 Tab,sub 表示选中订阅计划 Tab,不传时默认选中订单 |
val requestParam = CameraVASParamsV2()
requestParam.homeId = homeId.toString()
requestParam.devId = deviceId
requestParam.sceneCode = "security_cloud_service"
requestParam.categoryCode = "homePage"
requestParam.params = mutableMapOf<String, String>()
ThingIPCSdk.getIPCVAS().fetchValueAddedServiceUrlV2(requestParam, object : OperationCallBack {
override fun onSuccess(sessionId: Int, requestId: Int, data: String?, camera: Any?) {
UrlRouter.execute(this, "thingSmart://miniApp?url=$data")
}
override fun onFailure(sessionId: Int, requestId: Int, errCode: Int, camera: Any?) {
// 错误处理。
}
})
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈