React Native 重定向到应用程序(如果已安装),否则重定向到 App Store 或 PlayStore

问题描述 投票:0回答:2

我想在按下应用程序链接时重定向为:-

  1. 如果未安装应用程序,则前往 Playstore 或 AppStore。
  2. 如果安装了应用程序,请打开我的应用程序(带有深层链接)。

到目前为止我所做的:-

我已经使用 React 导航 5 的深度链接实现了要求 2。 作为:-

import constants from '../../constants';

 const config = {
screens: {
    //SignInScreen: "SignInScreen",
    SignupScreen: {
        path: `${constants.Screens.SignUpScreen.name}/:id`,
        parse: {
            id: (id) => `${id}`,
        },
    }
},
 };

 const linking = {
prefixes: ["http://com.app"],
config,
  };

 export default linking;

App.js:-

<NavigationContainer linking={linking} ref={navigationRef}>
        {
            props.global.switchApp.isLoading ?
                <SplashStack />
                :
                (
                    props.global.user.accessToken !== null ?
                        <AppStack /> :
                        <AuthStack />
                )
        }
    </NavigationContainer>

并且

AndroidManifest.xml
的相应更改为:-

<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="com.app"
      android:scheme="http" />
  </intent-filter>

并在项目的

url type
中添加
target

并在

Appdelegate.m
文件中为:-

- (BOOL)application:(UIApplication *)application
        openURL:(NSURL *)url
        options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {

 // Add any custom logic here.
 BOOL deepLinking =  [RCTLinkingManager application:application openURL:url options:options];
return  deepLinking;
}

使用此功能时如何实现要求 1?

谢谢!!!

react-native deep-linking
2个回答
4
投票

要打开应用程序或打开应用程序商店或 Play 商店,请在应用程序链接上单击(如果未安装该应用程序),请尝试使用 Firebase 动态链接功能。

查看文档以获取更多信息。

https://rnfirebase.io/dynamic-links/usage


0
投票

对于“今天”发现此内容的任何人,请注意 Google 将于 2025 年 8 月停止动态链接https://firebase.google.com/support/dynamic-links-faq

© www.soinside.com 2019 - 2024. All rights reserved.