RxReader / tencent_kit

Flutter版QQ登录/分享
MIT License
235 stars 63 forks source link

Android QQ授权可以成功,Ios没有回调登录代码 #7

Closed guuguo closed 5 years ago

guuguo commented 5 years ago
    git:
      url: https://github.com/v7lin/fake_tencent.git

依赖的是这个 5月30日的

没有走 listen的回调

    _tencent.loginResp().listen(_listenLogin);
    _tencent.userInfoResp().listen(_listenUserInfo);
droplet-js commented 5 years ago

schemes和白名单有设置吗?

guuguo commented 5 years ago

设置了,有跳转到qq授权登录,确认后回来没有走回调代码。就IOS这样

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>mqq</string>
        <string>mqqapi</string>
        <string>mqqwpa</string>
        <string>mqqbrowser</string>
        <string>mttbrowser</string>
        <string>mqqOpensdkSSoLogin</string>
        <string>mqqopensdkapiV2</string>
        <string>mqqopensdkapiV3</string>
        <string>mqqopensdkapiV4</string>
        <string>wtloginmqq2</string>
        <string>mqzone</string>
        <string>mqzoneopensdk</string>
        <string>mqzoneopensdkapi</string>
        <string>mqzoneopensdkapi19</string>
        <string>mqzoneopensdkapiV2</string>
        <string>mqqapiwallet</string>
        <string>mqqopensdkfriend</string>
        <string>mqqopensdkdataline</string>
        <string>mqqgamebindinggroup</string>
        <string>mqqopensdkgrouptribeshare</string>
        <string>tencentapi.qq.reqContent</string>
        <string>tencentapi.qzone.reqContent</string>
    </array>

image

droplet-js commented 5 years ago

在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id

URL Types tencent: identifier=tencent schemes=tencent${appId}

这部分呢?

droplet-js commented 5 years ago

还有,你有没有用那些需要你该Appdelegate.m中handleopenURL的插件?比如fluwx之类的?

guuguo commented 5 years ago

谢谢,已经可以了。是因为之前引用其他qq登录库的时候,修改了Appdeleget.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
            options:(NSDictionary<NSString*, id> *)options
{
    NSString * urlStr = [url absoluteString];
    [[NSNotificationCenter defaultCenter]
     postNotificationName:@"QQ" object:nil userInfo:@{@"url":urlStr}];
    return YES;
}

删掉就好了

litang0908 commented 3 years ago

谢谢,已经可以了。是因为之前引用其他qq登录库的时候,修改了Appdeleget.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
            options:(NSDictionary<NSString*, id> *)options
{
    NSString * urlStr = [url absoluteString];
    [[NSNotificationCenter defaultCenter]
     postNotificationName:@"QQ" object:nil userInfo:@{@"url":urlStr}];
    return YES;
}

删掉就好了

确实,我也是遇到这个问题,死活登录回调不触发,最后发现是在 AppDelegate 中之前接入其它 QQ SDK时做了类似处理导致的,删除就能正常回调了。