Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中未调用React Native getInitialURL()_Android_React Native_Deep Linking - Fatal编程技术网

在Android中未调用React Native 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

我完成了使用深度链接所需的所有安装。我可以从我发布到我的网站的外部URL启动应用程序,它工作正常。如果我的应用已经启动,我可以收听即将发布的URL,但唯一的问题是如果我的应用刚刚从URL启动,我无法获取初始URL

Linking.getInitialURL()从未调用,我不知道是什么问题

我的代码

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);
}