通过x-callback-url发送图片数据是截断图片

问题描述 投票:0回答:0

我正在尝试将数据从应用程序源发送到应用程序目标。除了图像部分,一切正常。当我将图像编码为 base64 并发送时,base64 代码被截断了。我只得到前 1024 个字符。

这是来自源应用程序的代码:

let uiimage = UIImage(data: selectedImageData!)
let uiimagebASE64 = uiimage!.jpegData(compressionQuality: 1)?.base64EncodedString() ?? ""

let strURL = "targetapp://x-callback-url/translate?x-success=sourceapp://x-callback-url/acceptTranslation&x-source=SourceApp&x-error=sourceapp://x-callback-url/translationError&word=Hello&username=\(username)&isPrivate=\(isPrivate)&notificationsEnabled=\(notificationsEnabled)&previewIndex=\(previewIndex)&version=\(version)&selectedImage=\(uiimagebASE64)"

if let encoded = strURL.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed),
   let myURL = URL(string: encoded) {
    print(myURL)
                        
    if (UIApplication.shared.canOpenURL(myURL)){
        UIApplication.shared.open(myURL, options: [:], completionHandler: nil)
    }
}

目标应用程序的代码:

func handleURL(_ url: URL) {
    let parameters = url.queryParameters
    let dataString = (parameters!["selectedImage"]!)
    let dataStringDecoded = dataString.removingPercentEncoding! 
    
    let imageData = Data(base64Encoded: dataString)
    let image = UIImage(data: imageData!)
    ...

我什至删除了源应用程序中的

addingPercentEncoding
和目标应用程序中的
removingPercentEncoding
。我遇到了同样的问题。

我该如何解决这个问题?从应用程序 A 向 B 发送图像数据是否有最佳解决方案?

ios swift base64 uiimage x-callback-url
© www.soinside.com 2019 - 2024. All rights reserved.