You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让我的React Native应用出现在Android的分享列表中

前置配置(必要,需先修改)

首先需要修改AndroidManifest.xml文件让系统识别你的应用支持分享接收,文件路径为 android/app/src/main/AndroidManifest.xml,找到主Activity的配置标签,新增分享意图过滤器:

<activity
  android:name=".MainActivity"
  <!-- 原有activity的其他配置属性全部保留,不要删除 -->
>
  <!-- 原有默认的启动intent-filter保留,不要删除 -->
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>

  <!-- 新增这段分享意图过滤器 -->
  <intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <!-- 支持接收纯文本/链接,适配Youtube分享场景 -->
    <data android:mimeType="text/plain" />
    <!-- 如需支持接收图片,可额外添加 <data android:mimeType="image/*" /> -->
  </intent-filter>
</activity>
Java代码修改(仅需修改MainActivity文件)

文件路径为 android/app/src/main/java/[你的应用包名路径]/MainActivity.java,修改内容如下:

  • 首先确认文件顶部已导入所需依赖,没有的话补上即可:
import android.content.Intent;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
  • 然后在MainActivity类中新增对应方法,原有默认生成的getMainComponentName方法无需修改:
public class MainActivity extends ReactActivity {

    // 原有默认方法,直接保留即可
    @Override
    protected String getMainComponentName() {
        return "你的RN项目名称";
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 处理应用未启动时,从分享入口打开的场景
        handleShareIntent(getIntent());
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        // 处理应用已在后台运行时,从分享入口打开的场景
        handleShareIntent(intent);
    }

    private void handleShareIntent(Intent intent) {
        String action = intent.getAction();
        String type = intent.getType();
        if (Intent.ACTION_SEND.equals(action) && type != null) {
            if ("text/plain".equals(type)) {
                // 如需获取分享的内容(比如Youtube链接),可以从这里取,不需要的话直接留空即可
                String sharedContent = intent.getStringExtra(Intent.EXTRA_TEXT);
                // 拿到内容后如果需要传给RN侧,可以通过事件发射或者本地存储的方式传递
            }
        }
    }
}
补充说明
  • 如果你仅需要应用出现在系统分享列表,不需要处理用户分享的具体内容,handleShareIntent方法内部可以全部留空,不影响功能
  • 修改完成后重新编译安卓项目即可生效

内容的提问来源于stack exchange,提问作者phoenix009

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:00:03