XCODE / IOS - 直接打开音频文件到whatsapp

时间:2018-02-01 13:43:26

标签: ios xcode audio share whatsapp

我正在尝试将我的ios应用程序中的音频文件共享到whatsapp,但是直接打开whatsapp,而不是打开所有磁贴的共享菜单。

这就是我现在所拥有的:

// Getting the original file
let fileName = #MY FILE NAME#
let filePath = Bundle.main.path(forResource: fileName, ofType: "mp3")!
let urlData = URL.init(fileURLWithPath: filePath)
let nsData = NSData(contentsOf: urlData)

if (nsData != nil){

    // Creating the temporary file to share in the accessible ressources
    let newFileName = "file.mp3"
    let newFilePath = "\(NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])/\(newFileName)"
    nsData?.write(toFile: newFilePath, atomically: true)
    let newUrlData = URL.init(fileURLWithPath: newFilePath)

    // Sharing the file to whatsapp
    // Possibility 1 (does not work yet)
//    let documentController = UIDocumentInteractionController(url: newUrlData)
//    documentController.uti = "net.whatsapp.audio"
//    documentController.presentOpenInMenu(from: CGRect.zero, in: self.view, animated: true)

    // Possibility 2 (works only with the sharing menu)
    let activityVC = UIActivityViewController(activityItems: [NSURL(fileURLWithPath: newFilePath)], applicationActivities: nil)
    self.present(activityVC, animated: true, completion: nil)

}

当我这样做时,共享一个音频文件到whatsapp工作,但它首先打开共享菜单,使用信使磁贴,消息磁贴,备注磁贴,...(它不适用于Messenger应用程序) 。最后,我希望能够分享使用AND Whatsapp。

As explicated here in the whatsapp documentation,我想在尝试共享文件时直接打开whatsapp应用程序:

  

或者,如果您只想在应用程序列表中显示WhatsApp(而不是WhatsApp以及任何其他符合公共/ *的应用程序),您可以指定使用WhatsApp独有的扩展名保存的上述类型之一的文件:

     
      
  • 图片 - «.wai»,类型为net.whatsapp.image
  •   
  • 视频 - «.wam»,类型为net.whatsapp.movi​​e
  •   
  • 音频文件 - «.waa»,类型为net.whatsapp.audio
  •   
     

触发后,WhatsApp会通过联系人/组选择器屏幕立即显示用户。媒体将自动发送到选定的联系人/组。

所以我试着换行:

let newFileName = "file.mp3"

其中一个:

let newFileName = "file.mp3.waa"
let newFileName = "file.waa"
let newFileName = "file.waa.mp3"

但它仍显示相同的共享菜单(如果以.waa扩展名结尾,则无法读取音频文件)。

- > 1)我可以做我想做的事吗?

- > 2)如果没有,有没有办法分享给信使& whatsapp使用相同的代码保留一个共享菜单

- > 3)如果没有,是否有办法根据不同的呼叫事件将共享菜单减少到只有一个图块,所以没有混乱的选择瓦片

谢谢, 安托

1 个答案:

答案 0 :(得分:0)

cf:XCODE / IOS - How to use exclusive extension to immediately present whatsapp (.wai, .waa, .wam)

仅供参考:在我进行了大量测试时,我还找不到任何解决方案。

Whatsapp可以识别文件扩展名,但是甚至无法读取它。共享后,当您单击它时,它会写为“ .whatsapp音频文件”,仅此而已(甚至不直接共享)。

我发送了一封电子邮件给whatsapp开发人员团队,他们说他们目前还有其他问题需要解决,因此甚至不在他们的待办事项清单上。

等一下。