在Android中未调用React Native getInitialURL()
我完成了使用深度链接所需的所有安装。我可以从我发布到我的网站的外部URL启动应用程序,它工作正常。如果我的应用已经启动,我可以收听即将发布的URL,但唯一的问题是如果我的应用刚刚从URL启动,我无法获取初始URL Linking.getInitialURL()从未调用,我不知道是什么问题 我的代码在Android中未调用React Native getInitialURL(),android,react-native,deep-linking,Android,React Native,Deep Linking,我完成了使用深度链接所需的所有安装。我可以从我发布到我的网站的外部URL启动应用程序,它工作正常。如果我的应用已经启动,我可以收听即将发布的URL,但唯一的问题是如果我的应用刚刚从URL启动,我无法获取初始URL Linking.getInitialURL()从未调用,我不知道是什么问题 我的代码 componentDidMount(){ Linking.getInitialURL().then((url) => { console.warn('cal
componentDidMount(){
Linking.getInitialURL().then((url) => {
console.warn('called');
if (url) {
console.warn('Initial url is: ' + url);
}
}).catch(err => console.warn('An error occurred', err));
}
我的Android XML
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"
android:launchMode="singleTask"
>
<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.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="spark" />
</intent-filter>
</activity>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
如果应用程序已经启动,它将不会重新加载组件,因此不会执行您的生命周期方法。尝试添加链接事件侦听器,并查看
componentDidMount() {
Linking.addEventListener('url', this._handleOpenURL);
},
componentWillUnmount() {
Linking.removeEventListener('url', this._handleOpenURL);
},
_handleOpenURL(event) {
console.log(event.url);
}
你有什么解决办法吗?没有还是一样。。实际上,我也希望得到一些答案。addEventListener不起作用:(
componentDidMount() {
Linking.addEventListener('url', this._handleOpenURL);
},
componentWillUnmount() {
Linking.removeEventListener('url', this._handleOpenURL);
},
_handleOpenURL(event) {
console.log(event.url);
}