### 概要

ブラウザで表示しているWebアプリケーションからReact
Nativeアプリに対してURLスキームを用いたデータの受け渡しを行った際に、送信したデータとは違うURlスキームが渡されてしまいます。ReactNativeアプリ側に渡されたデータは、数日前送信したデータと同様のもので、すり替わって渡されるといった挙動です。

### 発生条件

ReactNativeアプリをバックグラウンド状態で常駐されておくことで、翌日以降から不定期で本事象が発生する。  
アプリ間の連携は「ブラウザ→ReactNativeアプリ→ブラウザ」を１サイクルとしているが、１サイクル毎にReactNativeアプリを停止（バックグラウンド状態から削除）したら、本事象は確認できなかった。

### 発生頻度

その日一番最初の受け渡しの時だけの場合や、１日に不定期で何度が起きる場合もあります。

### 現状の調査結果

  * ブラウザ側のWebアプリケーション、ReactNativeアプリに各ログを差し込んで動作検証したら、RootStackParamListにパースされた地点でデータがすり替わっている。
  * 不具合詳細の発生条件から、Androidのライフサイクルが関係しているのではという仮説を立て調査を行なっているが、現状は明確な答えが導き出せていない。

### お聞きしたいこと

  * URLスキームを用いたアプリ間連携において、本不具合と類似したケースをご存知の方がいらっしゃったら、どのように解決されたかお聞きしたいです。
  * また、以下に記載するアプリ連携概要のNavigator設定等実装でおかしな部分があったら、教えて頂きたいです。

### アプリ連携概要

ブラウザで表示しているWebアプリケーションからReact
Nativeアプリに対してURLスキームを用いたデータの受け渡しを行っており、受け取りが完了した後、SendIntentAndroid.openAppでブラウザに戻るという風な複数アプリ間の連携を行っています。

Navigator(Router)設定

```

    export default function App() {
      const linking = {
        prefixes: ["proxy://app"],
        config: {
          screens: {
            Home: {
              path: "/",
            },
            Socket: {
              path: "/socket/:requestData",
            },
          },
        },
      };
    
      return (
        <NavigationContainer linking={linking}>
          <RootNavigator />
        </NavigationContainer>
      );
    }
    
```

コンポーネント呼び出し

```

    const Stack = createStackNavigator<RootStackParamList>();
    
    export const RootNavigator = () => {
      return (
        <Stack.Navigator
          initialRouteName="Home"
          screenOptions={{ headerShown: false }}
        >
          <Stack.Screen name="Home" component={Home} />
          <Stack.Screen name="Socket" component={Socket} />
        </Stack.Navigator>
      );
    };
    
```

Socketコンポーネント実装

```

    const Socket = ({ route }: StackScreenProps<RootStackParamList, "Socket">) => {
        console.log(route.params) // ここの地点でデータがすり替わっている
    
        // 内部処理
    
      return (
        <View style={styles.container}>
         ~~~ 省略 ~~~
        </View>
      );
    };
    
```

### 実行環境

OS: Android  
ブラウザ: ChromeまたはWebPrintBrowser  
react-native: 0.63.4
CC BY-SA 4.0
2022-11-15T02:10:14.183
92234
2022-11-16T02:05:08.250
2022-11-16T02:05:08.250
3060
55406
question
android google-chrome react-native
ブラウザからReact Nativeアプリに対してURLスキームを用いたデータの受け渡しを行った際に、意図しないデータがアプリ側に渡されてしまう。