我正在开发IOS应用程序,我在SFSafariViewController中打开登录页面。在登录成功登录页面时,会生成Json响应。
我想获得该响应并关闭SFSafariViewController。
在android中我通过Javascript和Javascript界面实现了它。
我的服务器端代码:
<?php
//curl initialize
//Some code
//Curl Execution
$response = curl_exe($ch)
?>
<script>
showAndroidToast("<?php echo $response;?>");
function showAndroidToast(res){
Android.dataResponse(res);
}
</script>
在android。
Android.dataResponse(res)是我添加到我的Chrome自定义标签(https://developer.chrome.com/multidevice/android/customtabs)的javascript界面。
我想要我的IOS应用程序的类似功能。我不知道。是否可以使用SFSafariViewController?
答案 0 :(得分:1)
根据this StackOverflow回答,您无法下载SFSafariViewController
的文件。此外,根据Apple's documentation
根据这些信息,我非常确定你最安全的选择是走WKWebView
路线,即使WebKit在iOS上有各种各样的限制。您可以使用this作为起点。
我个人只需调用我的登录API并创建一个本机登录表单,从而完全绕过Apple的浏览选项。我希望这有帮助!
修改强>
OP实际上正在使用FitBit的API和OAuth2,并且根据FitBit的文档:
对于本机应用程序,这意味着授权页面必须在默认浏览器中打开。本机应用程序可以使用自定义URL方案作为重定向URI,以将用户从浏览器重定向回请求权限的应用程序。 iOS应用程序可能使用SFSafariViewController类而不是应用程序切换到Safari。禁止使用WKWebView或UIWebView类。
使用FitBit的授权代码授权流程的指针可在their documentation中找到,但没有正确的指南。但OAuthSwift支持FitBit,因此这可能是实现登录的最简单方法。还可以找到有关示例集成的讨论here和here。