当前位置: 首页 > 知识库问答 >
问题:

XCODE/IOS-通过直接打开将音频文件共享到whatsapp

宇文鸣
2023-03-14

我正试图将一个音频文件从我的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互动程序、消息互动程序、注释互动程序。。。(而且它不适用于messenger应用程序)。最后,我希望能够在messenger和whatsapp上分享。

正如whatsapp文档中所述,我想在尝试共享文件时直接打开whatsapp应用程序:

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

  • 图像-«。wai»类型为net。WhatsApp图像
  • 视频-«。wam»类型为net。WhatsApp电影
  • 音频文件-«。waa»类型为net。WhatsApp音频

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

所以我试着改变路线:

let newFileName = "file.mp3"

其中之一:

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

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

-

-

-

谢谢Antoine

共有1个答案

扈俊健
2023-03-14

Cf:XCODE/IOS-如何使用独占扩展立即呈现whatsapp(.wai,.waa,.wam)

仅供参考:因为我用这个做了很多测试,所以我还没有找到任何解决方案。

Whatsapp可以识别文件扩展名,但甚至无法读取。一旦被共享,当你点击它时,它就会被写入“.whatsapp音频文件”,仅此而已(而且它甚至不会被直接共享)。

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

等待

 类似资料:
  • 我正在尝试制作一个用于共享音频文件的按钮。这不起作用。首先,我试图直接从原始文件夹发送文件,而不将其复制到手机卡上。这并没有解决我的问题。我尝试的第二件事是将文件保存到手机上,然后共享。将文件保存到手机的部分现在可以工作了,但当我尝试将音频文件共享到其他设备时,所有兼容的应用程序(Whatsapp、Gmail等)都崩溃了。 这是我的代码: 顺便说一下,音频文件是一个。ogg文件。我希望这些应用程序

  • 长按按钮时,我正在尝试共享声音文件。这是我的代码: 然而,当我长按按钮时,共享菜单出现,但我只能与WhatsApp共享声音。任何其他应用程序都无法运行。(Gmail给了我一条消息,说“不能附加空文件”。声音是.ogg格式的,我试着把它转换成.wav,但它给了我同样的问题。我做错了什么?

  • 我想在Google plus上分享视频

  • 我正在使用录音应用程序,其中音频被录制并存储在应用程序中,该路径存储在SQLITE中。 我需要那个音频文件在whatsapp/gmail中共享或保存在手机的内部目录中。 我试图使用Intent分享它们,但在whatsapp中,它显示了不受支持的格式。 我试过这个密码 我也搜索了一下,我知道在共享之前,音频文件必须先存储在内部目录中。所以我尝试了输入-输出流方法,它不起作用。 有人能帮我分享这个音频

  • 我在API网关中创建了一个API,用于将音频文件上载到s3,该文件作为多部分/表单数据从本地PC发送。 API集成请求如下所示 在URL路径参数中,添加bucket作为param,直接添加bucket名称 当我尝试上载文件时,收到错误响应, 需要做哪些更改?

  • 我正在尝试共享RES/RAW文件夹中的音频文件。到目前为止我所做的是: 例如,当我选择在GMail上分享它时,它会说“无法附加空文件”之类的话。看来我没有得到正确的文件路径,所以我基本上没有共享任何东西。我做错了什么? 任何帮助都将不胜感激。