我正在尝试将数据从应用程序源发送到应用程序目标。除了图像部分,一切正常。当我将图像编码为 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)¬ificationsEnabled=\(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 发送图像数据是否有最佳解决方案?