gpt4 book ai didi

javascript - SFSafariViewController 和 Javascript

转载 作者:行者123 更新时间:2023-11-29 00:31:26 25 4
gpt4 key购买 nike

我正在开发 IOS 应用程序,在其中我在 SFSafariViewController 中打开登录页面。当登录成功时,在该登录页面上会生成 Json 响应。

我想获得该响应并关闭 SFSafariViewController。

在 android 中,我通过 Javascript 和 Javascript 接口(interface)完成了它..

我的 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 接口(interface),我将其添加到我的 Chrome 自定义选项卡 ( https://developer.chrome.com/multidevice/android/customtabs )。

我想要我的 IOS 应用程序具有类似的功能。我不知道。这对于 SFSafariViewController 是否可行?

最佳答案

根据 this StackOverflow 回答您无法使用 SFSafariViewController 下载文件此外,根据 Apple's documentation 似乎没有委托(delegate)来启动 JSON 的下载。

鉴于此信息,我很确定您最安全的选择是使用 WKWebView 路线,即使 WebKit 在 iOS 上有各种限制。你可能会使用 this作为起点。

个人只是调用我的登录 API 并创建一个 native 登录表单,从而完全绕过 Apple 的浏览选项。希望对您有所帮助!

编辑

OP 实际上使用的是 FitBit 的 API 和 OAuth2,并且根据 FitBit 的文档:

For native applications, this means the authorization page must open in the default browser. Native applications can use custom URL schemes as redirect URIs to redirect the user back from the browser to the application requesting permission. iOS applications may use the SFSafariViewController class instead of app switching to Safari. Use of the WKWebView or UIWebView class is prohibited.

可以在 their documentation 中找到使用 FitBit 的授权码授予流程的指示。但没有合适的指南。但是OAuthSwift支持 FitBit,因此这可能是实现登录的最简单方法。还可以找到关于示例集成的讨论 herehere .

关于javascript - SFSafariViewController 和 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41673846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com