将我的React Native App注册到Android中的ShareAction可能性

时间:2015-11-28 01:44:42

标签: android android-intent react-native

我找到了several of reverse examples:使用意图从React应用程序发送到另一个应用程序。

我找到了一个人explaining how to do this with IOS的博文。

但不是在Android上。 :(

我理解from there我需要在`AndroidManifest.xml'中添加一些内容。文件:

  <activity android:name=".ShareLink">
      <intent-filter>
          <action android:name="android.intent.action.SEND" />
          <category android:name="android.intent.category.DEFAULT" />
          <data android:mimeType="text/plain" />
      </intent-filter>
  </activity>

我是对的,这是APP_ROOT/node_modules/react-native/ReactAndroid/src/main/AndroidManifest.xml文件吗?

它看起来应该是那样吗?

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.facebook.react">
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <application />
    <activity android:name=".ShareLink">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
</manifest>

如何创建意图?

一旦我的应用程序在列表中(wohoo),如何在React App中获取数据?

任何帮助都将受到高度赞赏。我是一名网络开发者,喜欢React,但完全不喜欢Android。

1 个答案:

答案 0 :(得分:2)

要在共享列表中获取我的应用程序,最终并不是那么难:

<APP_ROOT>/android/app/src/main/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.appname">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
        <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" />
            <data android:mimeType="text/plain" />
          </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

但是一旦它出现在列表中,为了让React App可以访问它,那么就很复杂了。我在另一个子问题后详细介绍了下一个答案中的步骤:https://stackoverflow.com/a/33969430/1620081