React Native:没有从其他Android应用程序接收意图

时间:2017-03-24 22:33:48

标签: android android-intent react-native

我希望我的React Native应用程序能够从其他应用程序接收URL意图。因此,例如,当我使用QR代码扫描程序扫描URL并想要打开它时,我安装的浏览器中也会显示我的React Native应用程序。

我按照Linking

的说明操作
  • 我实施了componentDidMount(),如Linking documentation
  • 所示
  • android/app/src/main/AndroidManifest.xml中,我根据the Android docs编辑了<intent filter>部分,现在它看起来像这样:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="http"
          android:host="www.example.com"
          android:pathPrefix="/gizmos" />
    </intent-filter>
    

完成此操作后,我预计在使用我的QR扫描仪扫描http://www.example.com/gizmos并尝试打开它之后,扫描仪会向我提供我的React Native应用程序。但是,它只显示我以前安装的浏览器。

我的期望是错的吗?或者可以做些什么来实现这一目标?

1 个答案:

答案 0 :(得分:1)

抓住行动android:name="android.intent.action.MAIN"是不够的,但你需要抓住android:name="android.intent.action.VIEW"

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:host="www.example.com" android:scheme="http" />
</intent-filter>