• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 使用 UIWebView 登录 Facebook 和 G+

[复制链接]
菜鸟教程小白 发表于 2022-12-13 15:01:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我的 iOS 应用有一个在 UIWebView 中设置的登录页面。它还具有 Facebook 和 G+ 登录。我可以让正常的登录屏幕正常工作,好吧。但是当我使用 Facebook 和 G+ 这样做时,我遇到了问题。我假设原因是单击按钮弹出的新窗口。 有什么方法可以在不求助于手动登录的情况下处理这个问题?



Best Answer-推荐答案


使用原生 Facebook 和 G+ 登录会容易得多。您要完成的工作比使用 native 登录要复杂得多。

如果你真的出于某种原因必须在 UIWebView 中执行此操作,则必须实现如下策略:

  • 覆盖 UIWebViewDelegate 协议(protocol)的 -(BOOL)webViewUIWebView *)webView shouldStartLoadWithRequestNSURLRequest *)request navigationTypeUIWebViewNavigationType)navigationType 方法。

  • 在您的实现中,您应该在另一个模态 UIWebView 中打开登录界面并在那里处理登录事件,并在关闭该模态视图时,如果登录成功继续应用流程。

看起来像这样:

-(BOOL)webViewUIWebView *)webView shouldStartLoadWithRequestNSURLRequest *)request navigationTypeUIWebViewNavigationType)navigationType {

    NSURL *url = [request URL];

    //for facebook login
    if ([[url absoluteString] containsString"m.facebook.com"] && [[url absoluteString] containsString"login"]) {

        // instantiate and present new modal UIViewController containing UIWebView that loads the url. 
        return NO;
    }

    //for G+ something similar

    return [super webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];

}

然后,用于登录的模态视图 Controller 还必须实现如何处理可能的登录事件的逻辑,并在成功时自行关闭,这将非常复杂。

第一个 webView 还必须知道模式何时被关闭(可以通过协议(protocol)或其他方式完成),然后检查登录状态,如果成功则继续。

所以,正如我所说,最好使用 native 登录。

关于ios - 使用 UIWebView 登录 Facebook 和 G+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792200/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap