我有一个第一个 iOS 本机应用程序(比如说“调用者应用程序”),它打开了第二个(比如说“被调用者应用程序”),其 URL 为https://calleeapp.com
(通用链接)。我希望用户在“被调用者应用程序”中执行一些任务,完成后我想自动返回到“调用者应用程序”,提供此类任务的结果(URL 将类似于https://callerapp.com/check?result=xxxx
)。
处理此问题的最佳/适当方法应该是什么?
我有一个第一个 iOS 本机应用程序(比如说“调用者应用程序”),它打开了第二个(比如说“被调用者应用程序”),其 URL 为https://calleeapp.com
(通用链接)。我希望用户在“被调用者应用程序”中执行一些任务,完成后我想自动返回到“调用者应用程序”,提供此类任务的结果(URL 将类似于https://callerapp.com/check?result=xxxx
)。
处理此问题的最佳/适当方法应该是什么?
我们将,您需要能够在被调用者和调用者应用程序上都有代码,然后才能执行此操作。(除非第三方应用为回调 URL 实现了某种 API)。
在调用者应用程序上,尽管您想查看以下 AppDelegate 方法:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
// if it opened the app from some link
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
// the query will give you "result=xxxx"
if let query = userActivity.webpageURL?.query {
// code that pulls out the result from the string you get back
}
...
您还必须通过确保您AppName.entitlements
的关联域键具有其中一个值来实际支持通用链接,applinks:callerapp.com
以便调用者应用程序知道它可以在该方案中打开 url。(反之亦然,如果您也正在实施,则在被调用者应用程序上)