唤起手Q小程序(3.3.7)(QQ 8.1.8)
该能力允许第三方直接唤起手Q打开小程序。
注意事项
- 1. 第三方APP的plist文件中的LSApplicationQueriesSchemes字段中需要添加,mqqopensdklaunchminiapp,否则无法正常唤起手Q。
示例代码
QQApiLaunchMiniProgramObject* launchMiniApp = [QQApiLaunchMiniProgramObject new]; launchMiniApp.miniAppID = self.binding_miniAppId; launchMiniApp.miniPath = self.binding_miniPath; launchMiniApp.miniprogramType = [self.binding_miniType integerValue]; SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:launchMiniApp]; QQApiSendResultCode ret = [QQApiInterface sendReq:req]; [QQApiShareEntry handleSendResult:ret]; |
回调说明
采用通用回调格式"ret=xxx&error_des=xxx",ret为错误码,error_des为错误描述。
解析小程序打开第三方透传的数据(3.3.9)
背景:第三方通过互联分享小程序消息到手Q,可以在path后面传递若干参数,这些参数传到小程序内部后,还可以通过小程序唤起第三方接口透传回第三方,互联现已支持解析这一传递消息。
接入方法
首先找到AppDelegate中的如下系统方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url |
在这些方法中,加上互联解析第三方url的接口
[QQApiInterface handleOpenURL:url delegate(:id)delegate]; |
其中传入的delegate需要支持如下协议
/** 处理来自QQ的请求 */ (void)onReq:(QQBaseReq *)req; |
然后在回调中,可以得到新类型QQApiMiniProgramLaunchObject,其中字符串属性appParameter 即为透传的参数
示例代码
/** 处理来自QQ的请求 */ -(void)onReq:(QQBaseReq )req { switch (req.type) { case ESHOWMESSAGEFROMQQREQTYPE:// 手Q -> 第三方应用,请求第三方应用展现消息中的数据 if ([req isKindOfClass:ShowMessageFromQQReq.class]) { [self checkIfIsMALaunchApp:((ShowMessageFromQQReq)req).message]; } break; } } -(void)checkIfIsMALaunchApp:(QQApiObject )obj { if (![obj isKindOfClass:QQApiMiniProgramLaunchObject.class]) { return; } QQApiMiniProgramLaunchObject maLaunchApp = (QQApiMiniProgramLaunchObject*)obj; NSLog(maLaunchApp.appParameter); } |