微信第三方登录,主要手机没有安装微信处理

        现在处理微信第三方处理的方法百度下有很多,这里主要说一下如果手机没有安装微信的处理。

        前一段时间朋友由于没有对手机未安装微信做处理,被苹果审核组给拒绝了,主要原因就是说微信第三方登录没有对未安装微信的情况做处理,并且给出建议是对未安装微信的要调用web登录,信息如下:

We were required to install the WeChat app before we can log-in via WeChat. The user should be able to log-in and access their account, without requiring additional applications to be installed.

Next Steps
 If you choose to allow users to log-in via WeChat, please use methods that can authenticate users from within your app, such as a native web-view.


        最开始的由于微信SDK不支持web登录,官方给出的意见是:判断是否安装有微信,如果未安装让微信登录按钮隐藏。现在从网上查还有好多这样做的。其实后来微信推出了web登录接口,现在只需要在未安装微信的判断里加上该方法就行。下面这是SDK中WXApi的方法:

/*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
 *
 * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
 * @param req 具体的发送请求,在调用函数后,请自己释放。
 * @param viewController 当前界面对象。
 * @param delegate  WXApiDelegate对象,用来接收微信触发的消息。
 * @return 成功返回YES,失败返回NO。
 */
+(BOOL) sendAuthReq:(SendAuthReq*)req viewController:(UIViewController*)viewController delegate:(id)delegate;

应用场景:

SendAuthReq *sendAuth = [[SendAuthReq alloc]init];
if ([WXApi isWXAppInstalled]) {
    sendAuth.scope = @"snsapi_userinfo"; sendAuth.state = @"123";
    [WXApi sendReq:sendAuth];
}else{ //未安装微信调起web登录
    [WXApi sendAuthReq:sendAuth viewController:self delegate:self];
}




 
  

效果如下:

微信第三方登录,主要手机没有安装微信处理_第1张图片


【链接】微信开放平台

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317851&token=fe65f9ee7ece4c984904e7c5aee3174b851d02b1&lang=zh_CN

你可能感兴趣的:(iOS)