更新时间:2024-10-21 05:48:26下载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
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
进行 push
或 present
展示。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)
})
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈