微信不回调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<NSString *,id> *)options{
           return [WXApi handleOpenURL:url delegate:self];}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容