菜鸟教程小白 发表于 2022-12-13 08:43:54

ios - 不再调用 FBLoginView 委托(delegate)方法


                                            <p><p>我在我的应用中使用 <code>FBLoginView</code>(版本 3.xx)根据他们的 Facebook 个人资料自动创建用户帐户,但 <code>FBLoginViewDelegate</code> 的委托(delegate)回调没有不再被调用。</p>

<p>我的代码如下:</p>

<p>在我的 <code>AppDelegate</code> 的 <code>didFinishLaunchingWithOptions</code> 方法中,我有这一行:</p>

<pre><code>;
</code></pre>

<p>我有一个名为 <code>LoginHandler</code> 的类,它符合 <code>FBLoginViewDelegate</code> 协议(protocol)并实现了这些方法:</p>

<pre><code>- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
- (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id&lt;FBGraphUser&gt;)user
- (void)loginView:(FBLoginView *)loginView handleError:(NSError *)error
</code></pre>

<p>在我的 ViewController 的 <code>viewDidLoad</code> 方法中,我有以下代码:</p>

<pre><code>self.fbLoginView.readPermissions = @[@&#34;public_profile&#34;, @&#34;email&#34;];
self.fbLoginView.delegate = ;
</code></pre>

<p>我还设置了我的 Info.plist:</p>

<pre><code>FacebookAppID (containing &lt;my-app-id&gt;)
FacebookDisplayName (containing my app name=
CFBundleURLSchemes (containing fb&lt;my-app-id&gt;)
</code></pre>

<p>当我按下 Facebook 登录按钮时,它会切换到 Facebook 应用程序,询问权限(仅第一次)并返回到我的应用程序。但是,此时没有调用任何委托(delegate)方法。这以前可以工作,我确实得到了 <code>loginViewShowingLoggedInUser</code> 和 <code>loginViewFetchedUserInfo</code> 的回调,但前段时间它停止工作,我根本不知道是什么改变破坏了它.
有趣的是,每次我启动应用程序时(在我使用 Facebook 按钮执行任何操作之前)我的 <code>loginViewShowingLoggedOutUser</code> 都会被调用。我不知道这是否与我的问题有关,或者这是否是正常行为。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我找到了答案。我需要在我的应用委托(delegate)中重写此方法。</p>

<pre><code>-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    // Call FBAppCall&#39;s handleOpenURL:sourceApplication to handle Facebook app responses
    BOOL wasHandled = ;

    // You can add your app-specific url handling code here if needed
    return wasHandled;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 不再调用 FBLoginView 委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24800673/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24800673/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 不再调用 FBLoginView 委托(delegate)方法