高级功能 UI 业务包

更新时间:2025-11-17 03:30:46下载pdf

高级功能 UI 业务包提供了承载 App 高级功能 增值服务的 iOS 容器。目前,支持的高级功能类型如下所示:

开通服务

当前开通服务无需额外费用。在您进行服务开通后,将会通知相关涂鸦业务人员进行处理。您将会收到合约签署的通知,请耐心等待。

以下是支持开通的服务:

  • 短信通知服务
    • 当设备联动或警报触发时,启用短信通知功能。
  • 电话通知服务
    • 当设备联动或警报触发时,启用电话语音通知功能。
  • 节能低碳
    • 监测家庭智能设备的能耗状况,并获取专业的节能建议。

集成业务包

在工程的 Podfile 文件中添加 App 高级功能业务包组件,并执行 pod update 命令:

source "https://github.com/tuya/tuya-pod-specs"
source 'https://cdn.cocoapods.org/'
platform :ios, '11.0'

target 'your_target_name' do
  # 添加 App 高级功能业务包
  pod 'ThingAdvancedFunctionsBizBundle'
end

小程序方案(推荐)

提供服务

6.2 SDK 及以后版本可使用,版本信息详见更新日志

通过 ThingActivatedValueAddedServiceProtocol 协议提供接口,您可以在 ThingModuleServices 组件中查看 ThingActivatedValueAddedServiceProtocol.h 协议文件的内容。

获取服务列表

服务开通后,您可以通过以下接口获取已开通的服务列表:

- (void)fetchServiceWithSuccess:(void(^_Nullable)(NSArray<ThingValueAddedServiceModel *> *_Nullable services))success
                       failure:(void(^_Nullable)(NSError *error))failure;

高级功能 UI 业务包

打开服务页面

开通后您可以通过以下接口查看服务页面:

- (BOOL)openServiceWithModel:(ThingValueAddedServiceModel *)model isPush:(BOOL)isPush;
高级功能 UI 业务包

有关更多用法,请参阅 Demo

WebView 方案

提供服务

6.2 SDK 以下版本支持
App 高级功能业务包实现 ThingPersonalServiceProtocol 协议以提供服务,在 ThingModuleServices 组件中查看 ThingPersonalServiceProtocol.h 协议文件内容为:

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

typedef NS_ENUM(NSUInteger, ThingPersonalServiceType) {
    ThingPersonalServiceTypePushCall, // 电话通知
    ThingPersonalServiceTypePushSMS,  // 短信通知
    ThingPersonalServiceTypeIpcCloudStorage, // 云存储
    ThingPersonalServiceTypeIpcOrderList //订单页面
};

@protocol ThingPersonalServiceProtocol <NSObject>

/**
* 获取增值服务页面
*
* @param type 增值服务类型
* @param callback 该 block 应该包含一个 UIViewController 类型的参数和一个 NSError 类型的参数
*/
- (void)requestPersonalService:(ThingPersonalServiceType)type completionBlock:(void(^)(__kindof UIViewController *page, NSError *error))callback;
@end

依赖服务

由于电话和短信服务依赖家庭信息,需要在 podfile 中引入家庭业务包。

pod 'ThingSmartFamilyBizBundle'

注意事项

  • 调用任何接口之前,务必确认用户已登录。
  • 获取高级功能页面之前,请提前确认用户所注册的服务地区是否开通高级功能服务。相关服务与用户信息强相关。
  • 获取高级功能页面为 UIViewController,请使用 UINavigationController 进行 pushpresent 展示。
  • 高级功能页面依赖导航控制器,且会设置导航栏内容。因此,需要导航控制器进行包装。

获取高级功能页面(UIViewController

目前提供以下高级功能页面:

  • 电话通知页:ThingPersonalServiceTypePushCall
  • 短信通知页:ThingPersonalServiceTypePushSMS
  • 云存储页:ThingPersonalServiceTypeIpcCloudStorage
  • 订单页:ThingPersonalServiceTypeIpcOrderList

接入时,您可以根据需要获取并展示对应页面。因为后续还需要重新展示新的页面,所以必须包装 NavigationController,否则,会导致后续页面无法跳转。

#import <ThingSmartBizCore/ThingSmartBizCore.h>
#import <ThingModuleServices/ThingPersonalServiceProtocol.h>

id<ThingPersonalServiceProtocol> psImpl = [[ThingSmartBizCore sharedInstance] serviceOfProtocol:@protocol(ThingPersonalServiceProtocol)];
[self requestPersonalService:ThingPersonalServiceTypePushSMS completionBlock:^(__kindof UIViewController *page, NSError *error) {
  if (error) {
    NSLog(@"%@",error);
  } else {
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:page];
    [self presentViewController:nav animated:YES completion:nil];
  }
}];

Swift 示例

let psImpl = ThingSmartBizCore.sharedInstance().service(of: ThingPersonalServiceProtocol.self)
(psImpl as? ThingPersonalServiceProtocol)?.request(.home, completionBlock: { (psVc, error) in
    if let e = error {
        print("\(e)")
        return
    }
    // push
    yourNaviController.pushViewController(psVc!, animated: true)
    // present
    let naviVc = UINavigationController.init(rootViewController: psVc!)
    yourViewController.present(naviVc, animated: true, completion: nil)
})