ios - 使用 UIWebView 登录 Facebook 和 G+
<p><p>我的 iOS 应用有一个在 <code>UIWebView</code> 中设置的登录页面。它还具有 Facebook 和 G+ 登录。我可以让正常的登录屏幕正常工作,好吧。但是当我使用 Facebook 和 G+ 这样做时,我遇到了问题。我假设原因是单击按钮弹出的新窗口。
有什么方法可以在不求助于手动登录的情况下处理这个问题?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>使用原生 Facebook 和 G+ 登录会容易得多。您要完成的工作比使用 native 登录要复杂得多。</p>
<p>如果你真的出于某种原因必须在 UIWebView 中执行此操作,则必须实现如下策略:</p>
<ul>
<li><p>覆盖 <code>UIWebViewDelegate</code> 协议(protocol)的 <code>-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType</code> 方法。 </p></li>
<li><p>在您的实现中,您应该在另一个模态 UIWebView 中打开登录界面并在那里处理登录事件,并在关闭该模态视图时,如果登录成功继续应用流程。</p></li>
</ul>
<p>看起来像这样:</p>
<pre><code>-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = ;
//for facebook login
if ([ containsString:@"m.facebook.com"] && [ containsString:@"login"]) {
// instantiate and present new modal UIViewController containing UIWebView that loads the url.
return NO;
}
//for G+ something similar
return ;
}
</code></pre>
<p>然后,用于登录的模态视图 Controller 还必须实现如何处理可能的登录事件的逻辑,并在成功时自行关闭,这将非常复杂。</p>
<p>第一个 webView 还必须知道模式何时被关闭(可以通过协议(protocol)或其他方式完成),然后检查登录状态,如果成功则继续。</p>
<p>所以,正如我所说,最好使用 native 登录。</p></p>
<p style="font-size: 20px;">关于ios - 使用 UIWebView 登录 Facebook 和 G+,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/35792200/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/35792200/
</a>
</p>
页:
[1]