-
原因一:设置代理错误,[WXApi handleOpenURL:url delegate:self],self错误
微信-(void) onResp:(BaseResp*)resp;这个方法需要- (BOOL)application:(UIApplication*)application handleOpenURL :(NSURL *)url; - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;这个方法 是在appdelegate.m文件里的。onResp 这个方法是在SendMesgViewController.m方法里的。
解决
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 这个是其它应用通过url进去你应用时调用。
微信的这个[WXApi handleOpenURL:url delegate:self]是处理返回的url信息。
如果- (void)onReq:(BaseReq *)req要在其它类用,就把delegate:写成其它类比如说:你可以获取SendMesgViewController的对象。
或者把SendMesgViewController写成单例[WXApi handleOpenURL:url delegate:[SendMesgViewController shareSendMesgViewController]]
注:delegate指定谁去响应onResq,不能简单指定为self,且注意
-
原因二:
#pragma mark 跳转处理 //被废弃的方法. 但是在低版本中会用到.建议写上 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return [WXApi handleOpenURL:url delegate:self]; } //被废弃的方法. 但是在低版本中会用到.建议写上 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [WXApi handleOpenURL:url delegate:self];} //新的方法 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{ return [WXApi handleOpenURL:url delegate:self];}