我希望我的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应用程序。但是,它只显示我以前安装的浏览器。
我的期望是错的吗?或者可以做些什么来实现这一目标?
答案 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>