WebView弃用后Xamarin实现Facebook登录的可行方案问询
不依赖Android嵌入式浏览器的Facebook登录实现方案
目前有两种经过验证的可行实现方式,均符合Facebook最新的登录政策要求:
方案1:手动实现OAuth 2.0授权流程(无需依赖官方SDK)
该方案完全绕过官方SDK的版本限制,无需等待Nuget更新:
- 按Facebook OAuth协议规范构造授权请求链接,请求参数中指定
response_type=token,同时将redirect_uri设置为你的APP独有的自定义Scheme回调地址 - 不要使用嵌入式WebView加载授权链接,直接唤起系统默认浏览器或者Chrome自定义标签(Custom Tabs)打开链接
- 在APP内注册对应自定义Scheme的Intent过滤器,捕获Facebook登录完成后的回调数据,从中提取
access_token、过期时间等认证信息即可完成登录流程
方案2:自行绑定官方Java版高版本SDK
如果需要复用官方SDK的其他能力,可自行封装适配:
- 下载Facebook官方发布的8.2及以上版本Java SDK的AAR库文件
- 新建Xamarin Android绑定库项目,引入下载的AAR文件完成绑定封装,生成可在C#代码中直接调用的程序集
- 集成封装好的绑定SDK到项目中即可,8.2及以上版本的官方SDK默认已使用Chrome自定义标签完成授权,不会调用嵌入式WebView
两种方案均完全不涉及Android嵌入式浏览器的使用,不会受到停止支持政策的影响。
内容的提问来源于stack exchange,提问作者MyaZZy
相关产品推荐
相关产品推荐

