ios – 在深层链接的情况下,从包含app的应用程序返回上一个应用程序的链接

我创建了一个带有扫描按钮的键盘扩展,以便在我的应用程序中打开条形码扫描器.扫描完成后,它应该导航回初始应用程序,条形码数据应设置为启动键盘的文本字段的文本,然后单击扫描按钮.

enter image description here

有这个应用程序Scandit Wedge以同样的方式做到这一点.但我找不到实现同样目标的方法.
请参考下面的GIF.

https://s3.amazonaws.com/id123-dev-ios/scandit.gif

任何帮助将非常感激.

最佳答案
没有公共API可以切换到以前的应用程序,这里是答案:https://stackoverflow.com/a/13447282/1433612

但是如果你知道应用程序的bundle id和url scheme,你就可以这样做.你可以在互联网上找到非官方的名单.假设您能够识别源应用程序,您可以在AppDelegate中执行以下操作:

public func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    guard let applicationBundleId = options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String else {
        return true
    }

    // Save your source application
    sourceApplicationBundleId = applicationBundleId
    return true
}

var sourceApplicationBundleId: String?

// Attempt to open application from which your app was opened
func openApplication() {
    guard let applicationBundleId = sourceApplicationBundleId, let url = url(for: applicationBundleId) else {
        return
    }
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

func url(for bundleId: String) -> URL? {
    guard let scheme = knownUrlSchemes[bundleId] else {
        return nil
    }

    return URL(string: scheme)!
}

// A list of known url schemes
var knownUrlSchemes: Dictionary<String, String> = {
    return ["com.google.Maps": "comgooglemaps://",
            "com.facebook.Facebook": "fb://"]
}()

转载注明原文:ios – 在深层链接的情况下,从包含app的应用程序返回上一个应用程序的链接 - 代码日志