微信不回调onResp、openURL、handleOpenURL等方法

  • 原因一:设置代理错误,[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 *)options{
           return [WXApi handleOpenURL:url delegate:self];}

你可能感兴趣的:(微信不回调onResp、openURL、handleOpenURL等方法)