android – 在React Native中添加共享操作

尝试构建一个React Native应用程序,该应用程序在“共享”菜单中注入一个菜单项(适用于
Android的共享操作,适用于iOS的共享扩展).是否有一个组件,如果没有,最好的方法是什么?

我不需要在我的应用程序中创建ActionSheet,我需要在共享菜单中注入一个菜单项,以允许用户从浏览器共享我的应用程序的URL.

最佳答案 您需要在项目中添加一些本机代码.我没有为iOS做过这方面的经验,但这里有一个关于如何在Android上做这个的大纲.

简化Android documentation’s example,您应该能够编写类似这样的内容,以允许其他应用程序将“文本字符串”共享到您的应用中:

AndroidManifest.xml中

...
<activity android:name="<your_app>.MainActivity">
    <!-- Allow users to launch your app directly -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <!-- Allow other apps to "share" with your app -->
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>
...

MainActivity.java

...
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // Get intent, action and MIME type
    Intent intent = getIntent();
    String action = intent.getAction();
    String type = intent.getType();

    // Match the intent specified in AndroidManifest.xml
    if (Intent.ACTION_SEND.equals(action) && "text/plain".equals(type)) {
            handleSendText(intent); // Handle text being sent
    } 
}
...

如果您使用React Native在Javascript中编写大部分应用程序逻辑,您可能希望handleSendText触发Javascript事件 – 有关如何执行此操作的信息,请参阅React Native docs on native modules.

点赞