我需要帮助弄清楚如何完成以程: 浏览器中的链接打开我的应用程序 -> 用户完成任务 -> 再次返回浏览器中的同一选项卡



我找不到解决这个问题的方法。我的应用将用于对某些操作进行签名。流程将如下所示:

  1. 用户希望使用任何浏览器登录网站。
  2. 用户输入凭据。
  3. 用户使用自定义 URL 方案重定向到我的应用。
  4. 用户使用其签名代码进行批准。
  5. 用户被重定向回 Web 浏览器中的同一页面。

这是我在弄清楚时遇到问题的最后一部分。用户完成后,如何使用相同的选项卡重新打开 Web 浏览器?

从浏览器在应用程序中回调后,您将在以下函数中获得 url:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url)
}
}

然后你需要像这样检查

if let url = URL(string: urlSting.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)!), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url!)
}

或者URL是完美的,那么你可以简单地像这样打开:

if let url = URL(string: urlSting), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
}

您还可以将浏览器 URL 存储在用户默认值中,直到用户完成签名过程,然后在 Web 浏览器中重定向该 URL

最新更新