将图像作为字符串传递给深层链接参数

时间:2018-04-17 11:47:47

标签: ios objective-c deep-linking

我知道我们可以在深层链接网址中传递键/值对。但是我们可以将图像作为字符串传递给特定键的值吗?我知道通过共享容器进行应用程序间通信。在我的例子中,我们创建了一个框架,其他开发人员可以在他们的应用程序中集成。通过框架,用户可以将图像发送到我们的应用程序(如果已安装)。所以共享容器在这里不起作用。 任何帮助将不胜感激。

网址长度是否有限制?

由于

1 个答案:

答案 0 :(得分:1)

从源应用程序传递base64StrImage

func gotToApp() {
    let data = UIImagePNGRepresentation(#imageLiteral(resourceName: "img"))
    let base64Str = data!.base64EncodedString()
    if UIApplication.shared.canOpenURL(URL(string: "deep://")!) {
        UIApplication.shared.open(URL(string: "deep://?img=\(base64Str)")!, options: ["img": #imageLiteral(resourceName: "img")]) { (finish) in

        }
    }
}

在目标应用程序中获取图像。

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        print(url.queryParameters!["img"])
        return true
 }

extension URL {
    public var queryParameters: [String: String]? {
        guard let components = URLComponents(url: self, resolvingAgainstBaseURL: true), let queryItems = components.queryItems else {
            return nil
        }

        var parameters = [String: String]()
        for item in queryItems {
            parameters[item.name] = item.value
        }

        return parameters
    }
}