1
company:// uploadで利用可能なアプリケーションがあります。私はitentフィルタを作成しました:React他のアプリからのネイティブディープリンク
<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:scheme="company"
android:host="upload" />
</intent-filter>
これはアプリケーションを開いていますが、反応ネイティブの内部ではURLを捕捉できませんでした。私の実装:
componentWillMount() {
Linking
.getInitialURL()
.then(event => this.handleOpenURL(event))
.catch(console.error);
Linking.addEventListener('url', this.handleOpenURL);
this.props.loadCredentials();
}
handleOpenURL(event) {
console.log(event);
switch (event.url) {
case `${Config.APP_SCHEMA}upload`:
Actions.Upload();
break;
default:
Actions.Home();
}
}
- 実装は
router.js
であり、これは最初のリアクトコンポーネントです。 - インテントフィルターは.MainActivityにあります
- 他のアプリケーションでアプリケーションをクリックすると、そのアプリケーションが開くのでリンクのJava部分が機能しています。
バージョン:
"react-native": "0.42.0",
Android SDK 23
最初の反応成分の中で、どこにjavascript部品を追加しましたか?その場合は、ルータに移動します。 – Raymond
私は 'react-native-flux-router'を使用しています。それは上のレベルです。しかし、 'Linking'パッケージは、それ以外のところでそれを捕まえるべきでしょう、そうではありませんか? – PumpkinSeed
私はそうは思わない。それは間違いなくあなたがルータの中にそれを追加する場合は動作します。 – Raymond