美文网首页
解决iOS 微信分享到app内的几个问题

解决iOS 微信分享到app内的几个问题

作者: 万年老参 | 来源:发表于2024-08-14 15:30 被阅读0次

问题1:微信分享来的apk文件后缀会改为apk.1

例:
file:///private/var/mobile/Containers/Data/Application/190C4CCD-63E4-5EEB-B70F-55C565F09A64/Documents/Inbox/xxx.apk.1
解决方式:创建一个以apk结尾的同名文件,将分享来的数据写入到新文件内进行后续处理。

问题2:微信分享来数据会被存储,导致占用内存越来越高。

每次使用完后删除掉原文件。
结合上面两个问题,代码示例:

将类似:文件名.apk.1 , 文件名.apk-1.1,文件名.apk-10.1,这类结尾的路径改后缀名为.apk
func convertExtension(for path: String) -> String {
        let pattern = "(\\.apk)(-|\\.)[0-9]+(\\.[0-9]+)?$"
        let replacement = ".apk"
        let newPath = path.replacingOccurrences(of: pattern, with: replacement, options: .regularExpression)
        return newPath
    }
     //openUrl为分享进来的路径
let document = UIDocument.init(fileURL: url)
var newUrl  = openUrl.deleteLastPathComponent()
let endStr = convertExtension(for: document.fileURL.lastPathComponent)
newUrl = newUrl.appendingPathComponent(endStr) 
let fileManager = FileManager.default
do{
  try fileManager.copyItem(at: url, to: newUrl)
}catch{
  print("外部文件点击error2")
  return false
}        
do{          
  try fileManager.removeItem(at: openUrl)
}catch{
  print("删除缓存文件")
  return false
}
      //后续以newUrl来进行后面的操作

相关文章

网友评论

      本文标题:解决iOS 微信分享到app内的几个问题

      本文链接:https://www.haomeiwen.com/subject/prsskjtx.html