【问题标题】:Export whatsapp messages to react-native app将 whatsapp 消息导出到 react-native 应用程序
【发布时间】:2019-09-16 14:14:44
【问题描述】:

我正在尝试使用 react-native 从我的设备访问 whatsapp 消息。直接访问它们似乎是不可能的,所以我正在研究导出消息并将它们导入我的应用程序的可能性。 whatsapp 共享菜单当前提供的选项缺少任何直接的download 选项。

有没有办法将我的应用添加到 whatsapp 共享菜单?或者有没有简单的方法来导入这些消息?

【问题讨论】:

    标签: react-native whatsapp


    【解决方案1】:

    在构建Website 来分析 WhatsApp 聊天时,我们遇到了同样的问题,因为使用 android,您无法将导出的聊天保存在设备上。

    我们的解决方案是使用PWA (Progressive Web App) 并监听共享事件。 当有人现在安装 PWA 时,他们可以直接与 App 共享导出。 (目前,这仅支持带有 Chrome 的 Android,因为 Apple 强烈反对 PWA)

    我们的implementation

    if (workbox) {
        workbox.addEventListener("message", (m) => {
            // eslint-disable-next-line no-prototype-builtins
            if (_this.$route.query.hasOwnProperty("receiving-file-share")) {
                let files = m.data.file;
                // currently only the first file, but ultimately we want to pass all files
                _this.$refs.filehandler.processFileList(files, true);
            }
        });
        workbox.messageSW("SHARE_READY");
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用 https://github.com/meedan/react-native-share-menu 这个库从 Whatsapp 导出聊天。当您从 WhatsApp 导出聊天文件时,您的应用程序将显示在共享对话框中。之后,您可以从您的应用程序中打开该文件,如下所示

        ShareMenu.getSharedText((text :string) => {
        if (text && text.length) {
          if (text.startsWith('content://media/')) {
            //this will be a media
          } else {
            content = this.readFile(text) 
          }
        }
      })
      

      然后您可以使用 RNFS 库读取该文件的内容

      readFile = async (path) => {
          try {
            const contents = await RNFS.readFile(path, "utf8");
            return("" + contents);
          } catch (e) {
            alert("" + e);
          }
        };
      

      获取聊天内容后,即可解析聊天内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 2021-06-13
        • 2015-11-25
        • 1970-01-01
        • 2017-09-17
        • 2019-06-18
        相关资源
        最近更新 更多