在单个应用程序中响应本机共享

时间:2017-07-19 00:44:28

标签: react-native

在我的本机应用程序中,我希望与特定应用程序共享文本消息,例如whatsapp或短信应用程序,而无需首先登陆所有社交应用程序的对话框。

例如,如果我按下分享按钮并直接调用whatsapp。

我尝试使用react-native-share但似乎不再有效了。

2 个答案:

答案 0 :(得分:4)

您可以使用Linking为您提供与传入和传出应用链接进行交互的通用界面

例如:

import React, { Component } from 'react';
import { Linking, Button } from 'react-native';

export class App extends Component {
  render() {
    return <Button
              onPress={() => {
                let url = 'whatsapp://send?text=Hola Mundo';
                Linking.openURL(url).then((data) => {
                  console.log('open whatsapp')
                }).catch(() => {
                  console.log('App not installed')
                });
              }}
              title="Whatsapp"
              color="#4FBE3C"/>;
  }
}

答案 1 :(得分:0)

对于Android,React Native Share模块使用默认的ACTION_SEND android intent:

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);

为了有不同的行为,您需要编写我们自己的RN插件,该插件可以与您想要的应用程序通信(如果有这样的功能)或者在npm上找到类似的插件。

我认为你的插件应该做这样的事情:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
sendIntent.setPackage("com.whatsapp");