@interface MIniAppDemoSDKDelegateImpl : NSObject <TMFMiniAppSDKDelegate>@end
[TMFMiniAppSDKManager sharedInstance].miniAppSdkDelegate = [MIniAppDemoSDKDelegateImpl sharedInstance];
/*** @brief SDK宿主应用名称* 主要用于文案提示使用*/- (NSString *)appName;/*** @brief SDK宿主平台版本* @return 返回的是小写字符串,例如1.0.0*/- (NSString *)getAppVersion;/*** @brief SDK宿主平台QUA*/- (NSString *)getAppQUA;/*** @brief SDK宿主平台的网络状态*/- (TMANetWorkStatus)getAppNetworkStatus;/*** @brief SDK宿主平台的机型信息*/- (NSString *)getAppIPhoneModel;/*** @brief 宿主设置的当前语言*/- (NSString *)getCurrentLocalLanguage;/*** @brief 剪贴板频控*/- (NSNumber *)getClipboardInterval;/// 定制的UA/// @param defaultUserAgent 默认使用的 ua- (NSString *)customUserAgent:(NSString *)defaultUserAgent;
/*** @brief SDK宿主平台的用户昵称,默认返回"TMF小程序"*/- (NSString *)getAppNickName;/*** @brief SDK宿主平台的用户头像,默认返回demo图片*/- (UIImage *)getAppAvatar;/*** @brief 获取SDK宿主平台的当前用户账号标识,一般填uin或openid** 注意:返回nil会导致SDK内某些缓存失效。如果没有登录,可以填个设备号id来避免缓存失效*/- (NSString *_Nonnull)getAppUID;
/// 发起支付/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)requestPayment:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;/// login/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)login:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;/// checkSession/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)checkSession:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;/// getAccountInfoSync/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)getAccountInfoSync:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;/// getUserProfile/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)getUserProfile:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;/// getUserInfo/// @param app 小程序/小游戏实例/// @param params 参数/// @param completionHandler 回调结果- (void)getUserInfo:(TMFMiniAppInfo *)app params:(NSDictionary *)params completionHandler:(MACommonCallback)completionHandler;
/// 展示loading/// @param infos loading信息- (void)showLoading:(TMALoadingInfo * _Nullable)infos;/// 隐藏loading- (void)hideLoading;/// 展示toast/// @param infos toast信息- (void)showToast:(TMAToastInfo *)infos;/// 隐藏toast- (void)hideToast;/// 展示actionSheet/// @param title 标题/// @param cancelButtonTitle 取消按钮标题/// @param cancelAction 点击取消按钮触发的动作/// @param otherButtonTitleAndActions 其他按钮及响应操作/// @param dismissBlock actionSheet收起后需要执行的操作(一定要调用以保证功能正确!!!)/// @param presentingViewController 展示actionSheet的vc- (void)showActionSheetWithTitle:(nullable NSString *)titlecancelButtonTitle:(nullable NSString *)cancelButtonTitlecancelAction:(nullable dispatch_block_t)cancelActionotherButtonTitleAndActions:(nullable NSArray *)otherButtonTitleAndActionsdismissBlock:(nullable dispatch_block_t)dismissBlockpresentingViewController:(UIViewController *)presentingViewController;/// 分享面板/// 如果此方法不实现,则会调用showActionSheetWithTitle:cancelButtonTitle:cancelAction:otherButtonTitleAndActions:dismissBlock:presentingViewController:/// @param title 标题/// @param cancelAction 取消操作/// @param otherButtonTitleAndActions 其他按钮及响应操作/// @param dismissBlock 面板收起后需要执行的操作(一定要调用以保证功能正确!!!)/// @param parentVC 呼起面板的vc- (void)showShareViewWithTitle:(nullable NSString *)titlecancelAction:(nullable dispatch_block_t)cancelActionotherButtonTitleAndActions:(nullable NSArray *)otherButtonTitleAndActionsdismissBlock:(nullable dispatch_block_t)dismissBlockparentVC:(UIViewController *)parentVC;/// 点击胶囊按钮呼起的面板/// 如果此方法不实现,则会调用showActionSheetWithTitle:cancelButtonTitle:cancelAction:otherButtonTitleAndActions:dismissBlock:presentingViewController:/// @param app 小程序信息/// @param cancelButtonTitle 取消标题/// @param cancelAction 取消操作/// @param otherButtonTitleAndActions 其他按钮及响应操作/// @param dismissBlock 面板收起后需要执行的操作(一定要调用以保证功能正确!!!)- (void)showMoreButtonActionSheetWithApp:(TMFMiniAppInfo *)appcancelButtonTitle:(nullable NSString *)cancelButtonTitlecancelAction:(nullable dispatch_block_t)cancelActionotherButtonTitleAndActions:(nullable NSArray *)otherButtonTitleAndActionsdismissBlock:(nullable dispatch_block_t)dismissBlock;/// 收起所有小程序/小游戏呼起的actionSheet- (void)clearAllActionSheet;/// 呼起alert弹框/// @param title 标题/// @param message 信息/// @param actionTitleAndblocks 按钮标题及响应操作/// @param presentingViewController 呼起alert弹框的vc- (void)showAlertWithTitle:(nullable NSString *)titlewithMessage:(nullable NSString *)messageactionBlocks:(nullable NSArray<AlertActionInfo *> *)actionTitleAndblockspresentingViewController:(UIViewController *)presentingViewController;/*** @brief 展示弹窗** @param title 标题* @param message 信息* @param actionTitleAndblocks 按钮标题及响应操作* @param isDismissWhenBackground 当小程序退到后台时,弹窗是否消失* @param dismissOnClickBlank 当点击空白背景区域时是否消失* @param presentingViewController 呼起alert弹框的vc*/- (void)showPopupWithTitle:(NSString *)titlemessage:(NSString *)messageactionBlocks:(NSArray<AlertActionInfo *> *)actionTitleAndblocksisDismissWhenBackground:(BOOL)isDismissWhenBackgrounddismissOnClickBlank:(BOOL)dismissOnClickBlankpresentingViewController:(UIViewController *)presentingViewController;/// 宿主App可以自定义分享途径、决定展示顺序,目前使用在点击更多按钮、button组件(open-type="share")呼起的ActionSheet中/// 1、默认渠道:QQ好友、QQ空间、微信、朋友圈(具体type参见MAUIDelegateShareViewType),由开发商决定,宿主App只能更改展示顺序/// 2、自定义渠道:宿主App自定义(type填MAUIDelegateShareViewTypeCustomizedShare)/// 以上两种渠道展示顺序支持混排- (NSArray<TMASheetItemInfo *> *)customizedConfigForShare;/// 宿主App是否处于DarkMode模式- (BOOL)isDarkMode;/// 宿主App可以返回一个自定义的WKWebView,目前用于/// 1. web-view组件:需要解决web-view组件中用xhr发送post请求body丢失问题- (WKWebView *)webViewWithConfiguration:(WKWebViewConfiguration *)configuration;
/// 扫码调用客户端的扫码模块scancode/// @param scanPrams 扫码参数字典/// @param navigationController 从那个页面呼起vc/// @param completionHandler 回调结果- (void)scanCode:(NSDictionary *)scanPramsnavigationController:(UINavigationController *)navigationControllercompletionHandler:(MACommonCallback)completionHandler;/// 从选图器选择媒体/// @param model 配置/// @param parentVC vc/// @param completionBlock 选择完毕后需要回传数据 根据所选类型接受 TMAPickerImageModel TMAPickerVideoModel- (void)selectMediaFromPickerWithModel:(TMAMediaChooseConfigModel *)modelparentVC:(UIViewController *)parentVCcompletionBlock:(void(^)(NSArray * _Nullable medias, NSError * _Nullable error))completionBlock;/// 拍摄媒体/// @param model 配置/// @param parentVC vc/// @param completionBlock 选择完毕后需要回传数据,根据所选类型接受TMACameraImageModel TMACameraVideoModel- (void)selectMediaFromCameraWithModel:(TMAMediaChooseConfigModel *)modelparentVC:(UIViewController *)parentVCcompletionBlock:(void(^)(id _Nullable media, NSError * _Nullable error))completionBlock;/// 从PHAsset中获取图片数据/// @param phAsset 媒体对象/// @param needCompress 是否需要压缩- (NSData *)imageDataFromPhAsset:(PHAsset *)phAsset needCompress:(BOOL)needCompress;/// 图片预览/// @param navigationController 呼起图片预览的导航栏/// @param currentAbsoluteUrl 当前页面地址/// @param absUrlsInPreviewArray 需要预览的图片- (void)navigationController:(UINavigationController *)navigationControllerpresentImageWithCurrentUrl:(NSString *)currentAbsoluteUrlimageUrlArray:(NSArray *)absUrlsInPreviewArray;
// 处理启动过程中发生的错误- (void)handleStartUpError:(NSError *_Nonnull)errorapp:(NSString *_Nullable)appparentVC:(UIViewController *_Nonnull)parentVC;// 小程序启动成功- (void)handleStartUpSuccessWithApp:(TMFMiniAppInfo *_Nonnull)app;
/// 打印Log/// @param level log级别,参考PLTLogLevel/// @param msg log信息- (void)log:(MALogLevel)level msg:(NSString *)msg;
/// 处理当前app对于小程序引擎的一些配置项/// @param key 配置项key及支持的功能,参见TMAConfigDefine.h定义/// 自定义胶囊按钮关闭图标实例- (NSString*)stringWithConfigKey:(NSString *)key {if([key isEqualToString:TMA_SK_MINIAPP_CloseButton]) {return [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"white_close-circle.png"];} else if([key isEqualToString:TMA_SK_MINIAPP_CloseButtonDark]) {return [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"dark_close-circle.png"];}return nil;}
// 录屏状态回调- (void)applet:(TMFMiniAppInfo *)appletInfo screenCaptureStatusChanged:(BOOL)isCapture atPagePath:(NSString *)pagePath;// 截屏回调- (void)appletDidTakeScreenshot:(TMFMiniAppInfo *)appletInfo atPagePath:(NSString *)pagePath;// 添加水印- (nullable UIView *)appletCustomizeWatermarkView:(TMFMiniAppInfo *)appletInfo;
本页内容是否解决了您的问题?