如何让链接在 iOS 中使用 Xcode/Swift 自动打开 safari 应用程序(不是本地)?

Posted

技术标签:

【中文标题】如何让链接在 iOS 中使用 Xcode/Swift 自动打开 safari 应用程序(不是本地)?【英文标题】:How to have links automatically open the safari app (not locally) in iOS with Xcode/Swift? 【发布时间】:2020-03-15 19:19:21 【问题描述】:

我正在努力将 Snap SDK 集成到我的应用中,并且要使用 Snapchat 登录,需要打开一个 safari 网页。这是由 SDK 自动完成的,但这会在应用程序中以弹出窗口的形式在本地打开 safari。我不希望在登录过程结束时发生这种情况,页面会提示用户“继续”,如果在 safari 应用程序中完成,则会将用户带回应用程序,但如果在本地完成,则什么也不做(因为应用程序已经打开)。这很不方便,因为用户可能会感到困惑。我的代码只调用登录,但它与我的 Info.plist 的照片一起发布在下面。我怎样才能让它不在本地打开?

代码:

@IBAction func loginButtonTapped(_ sender: Any) 
    SCSDKLoginClient.login(from: self)  success, error in
        if let error = error 
            // An error occurred during the login process
            print(error.localizedDescription)
         else 
            // The login was a success! This user is now
            // authenticated with Snapchat!
        
    

【问题讨论】:

【参考方案1】:

确保您已将以下内容导入您的 ViewController:

import UIKit
import Social
import SafariServices

这将直接打开 Safari,而不是 Safari 弹出窗口。应该说,Apple 更希望用户在登录时不必离开应用程序,而弄乱这些机制可能会导致您的应用程序不被批准。

guard let url = URL(string: "https://***.com") else  return 
UIApplication.shared.open(url)

【讨论】:

以上是关于如何让链接在 iOS 中使用 Xcode/Swift 自动打开 safari 应用程序(不是本地)?的主要内容,如果未能解决你的问题,请参考以下文章

如何让图像在 iOS 模拟器中显示?

当另一个应用程序打开 Safari 视图控制器时,如何让 branch.io 通用链接工作?

如何在 iOS 中链接 protobuf

FMDB 如何让 sqlite 更简单 iOS?

如何让 UIWebView 工作

如何让 Cordova 通过插件自动嵌入自定义 iOS 框架?