ios-微信登陆(集成sdk1.8.6遇到的问题)

1、通过cocoapods导入sdk       pod 'WechatOpenSDK'

sdk 1.8.6 的出现,意味着你要配置universal link,这个东西需要后台来完成,一把心酸史啊~


首先,微信开发平台上,先填好Universal links,这个ul要跟你工程里,注册微信时候,填写一致,才能确保拉起微信

你的appdelegate文件里:

//向微信注册

   [WXApi registerApp:@"你的appid(微信申请应用)" universalLink:@"微信应用平台的ul"];

2、配置xcode

targets  --> info --> URL Types

然后找到info.plist文件中,找到下面截图,填好,一定要注意,我起初就是将weixinULAPI,打错成weixinUIAPI,导致微信拉不起来,检查几遍都没检查出来,苦恼了我两天!!!此为第一小坑!!!!

以及info.plist 文件中 设置App Transport Security Settings 为yes

接下来,需要用到你的苹果开发者账号,为ul配置做准备了

登陆你的苹果账号,https://developer.apple.com/

勾选Associated Domains 

配置好后,回到你的工程里,找到target -->  Signing&Capabilities ,xcode更新之后,只显示signing,可以点击上面那个+,添加Capabilities,这里要注意!!!!

Domains,填写域名,前面必须加上applinks:

配置完成。

再来说一下,服务器配置ul不生效,我们也是拿不到微信授权返回的数据的,不走回调函数,起初不确定是什么原因,不走回调函数,找了好久我这边得问题,这件事真的超级大坑!!!

首先我遇到的问题,就是微信授权,出现了二次弹窗,微信官方文档也写明了,出现二次授权确定弹窗,就要后台检查ul配置问题了。证明ul不生效!!!

微信开发文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html

以上配置完成之后,就是走代码部分了。这里,我也要多说几句,因为本人用的xcode11,多了一个scenedelegate,分屏功能。如果你的app没有分屏功能,可以将这个文件删掉,或者不删也没关系。

然后需要在info.plist中找到Application Scene Manifest选项,删掉

接着,在appdelegate里找到上面这两段代码,注释掉

以上完成了关闭多窗口的scenedelegate。

这里有一个问题,就是如果你不注释掉上面这两段代码,运行到ios13以上的手机,会出现黑屏情况。

我遇到的问题,就是三项操作都做了,但是还是出现了黑屏的情况,又是莫名其妙一堆问号,最后发现,删掉info.plist文件中的Application Scene Manifest选项,但是关掉xcode,打开这个选项竟然还在??再删掉,重启,就好了。这种事情只能是多试。谁也不会想到,删掉还在的情况、就像有缓存一样!

因为起初我删这个scenedelegate,出现黑屏,加上当时ul不生效,只能暂时放弃删掉scenedelegate的想法,当时的情况是,ios13以下的走appdelegate里微信的回调函数,ios13的由于ul问题,不走回调,查了好久,各种找问题,找到一篇文章,说在scenedelegate中,多写一个函数,- (void)scene:(UIScene*)scenewillConnectToSession:(UISceneSession*)sessionoptions:(UISceneConnectionOptions*)connectionOptions  API_AVAILABLE(ios(13.0)){}

写上之后,ios13的手机授权微信登陆,就走了这里,于是才有了在appdelegate和scenedelegate里分别写了一套微信登陆。appdelegate里的,供ios13以下使用,scenedelegate里的供ios13及以上使用。

当时用自己的手机测试没问题,但是转天拿同事手机ios13.2测试,竟然不好使了!!!

测试自己的依然好使,开始以为是ios13.2系统的问题,于是我将自己的手机(ios13.1.3)的关机重启,发现也不走回调函数了。(有些方、、、)

将工程发给另一个同事,他那里也是ios13.1.3,竟然没事,微信可以正常使用。那个同事的xcode是11.3,我们又怀疑是不是xcode版本问题,于是又升级xcode为最新版本,还是不行。最后代码看不出问题,加上ios13也不走回调,就想着再重新将scenedelegate弃用。才有了上面,发现删不掉的情况。

至此,删掉了scenedelegate,又改回用一套微信回调函数,一切问题都解决了。

真是遇到了好多坑啊~~~~~

代码部分:AppDelegate

- (BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

//微信注册

 [WXApi registerApp:@"你的appid(微信申请应用)" universalLink:@"微信应用平台的ul"];

}

#pragma mark - ******************** 微信 ********************

- (BOOL)application:(UIApplication*)applicationhandleOpenURL:(NSURL*)url {

    return  [WXApi handleOpenURL:url delegate:self];

}

- (BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplicationannotation:(id)annotation {

    NSLog(@"跳转回本APP:%@",url);

    return [WXApi handleOpenURL:url delegate:self];

}

#pragma mark - ******************** WXApiDelegate ********************

- (void)onResp:(BaseResp*)resp {

    /*

     enum  WXErrCode {

     WXSuccess          = 0,    成功

     WXErrCodeCommon    = -1,  普通错误类型

     WXErrCodeUserCancel = -2,    用户点击取消并返回

     WXErrCodeSentFail  = -3,  发送失败

     WXErrCodeAuthDeny  = -4,    授权失败

     WXErrCodeUnsupport  = -5,  微信不支持

     };

     */

    //微信登录的类

    if([respisKindOfClass:[SendAuthRespclass]]){


        if(resp.errCode==0) {  //成功。

            //这里处理回调的方法 。 通过代理吧对应的登录消息传送过去。

            SendAuthResp*sresp = resp;

            NSLog(@"codecodecode%@",sresp.code);

            [self   userToken:sresp.code];

//(这里是拿到code之后,走微信的接口,详见:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Authorized_API_call_UnionID.html

        }else{//失败

            NSLog(@"error %@",resp.errStr);

        }

    }

}

//iOS 13以上版本,进行微信相关操作会走此回调

- (BOOL)application:(UIApplication*)applicationcontinueUserActivity:(NSUserActivity*)userActivityrestorationHandler:(void(^)(NSArray<id> * __nullablerestorableObjects))restorationHandler {

    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

        NSURL*webUrl = userActivity.webpageURL;

        NSLog(@"continueUserActivity:%@",webUrl);

    }

    //处理通用链接

    //当APP被UniversalLink调起后,

    BOOL ret = [WXApi handleOpenUniversalLink:userActivity delegate:self];

    NSLog(@"处理微信通过Universal Link启动App时传递的数据:%d",ret);

    return ret;

}

// NOTE: 9.0以后使用新API接口

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{

    NSLog(@"options 跳转回本APP...url:%@",url);

          return [WXApi handleOpenURL:url delegate:self];

}

到这里,微信登陆功能就做好了

再多补充一句:

因为ios13.3的深色主题问题,为了防止app受到什么影响,什么字体被隐藏之类的,我关闭了深色主题

在info.plist文件中,设置User Interface Style 为,Light   即可。

ending

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342