我正在开发IOS应用程序,在其中我打开了SFSafariViewController的登录页面。当登录成功时,在该登录页面上生成一个Json响应。
我想得到这样的回应并关闭SFSafariViewController。
在android系统中,我通过Javascript和Javascript接口实现了它。
我的android服务器端代码:
<?php
//curl initialize
//Some code
//Curl Execution
$response = curl_exe($ch)
?>
<script>
showAndroidToast("<?php echo $response;?>");
function showAndroidToast(res){
Android.dataResponse(res);
}
</script>在机器人里。
Android.dataResponse(res)是我的javascript接口,我把它添加到Custom (https://developer.chrome.com/multidevice/android/customtabs)中。
我的IOS应用程序也需要类似的功能,我不知道。这在SFSafariViewController中是可能的吗?
发布于 2017-01-16 10:25:15
根据这 StackOverflow的答案,您不能用SFSafariViewController下载文件,而且根据苹果的文档,似乎没有委托来启动JSON的下载。
考虑到这些信息,我确信您最安全的选择是走WKWebView路线,尽管WebKit在iOS上有各种限制。您可能可以使用这作为起点。
我个人只需要调用我的登录API并创建一个本地登录表单,从而完全绕过Apple的浏览选项。我希望这能帮到你!
编辑
OP实际上正在使用FitBit的API和OAuth2,根据FitBit的文档:
对于本机应用程序,这意味着授权页必须在默认浏览器中打开。本机应用程序可以使用自定义URL方案作为重定向URL,将用户从浏览器重定向到请求权限的应用程序。iOS应用程序可以使用SFSafariViewController类而不是应用程序切换到Safari。禁止使用WKWebView或UIWebView类。
在他们的文件中可以找到使用FitBit授权代码授权流的指针,但没有适当的指南。但是OAuthSwift支持FitBit,所以这可能是实现登录的最简单的方法。关于示例集成的讨论也可以找到这里和这里。
https://stackoverflow.com/questions/41673846
复制相似问题