web-dev-qa-db-fra.com

Comment créer un lien "Noter cette application" dans React Native app?

Comment lier correctement un utilisateur à la page d'avis de l'application App Store dans React Application native sur iOS?

27
vtambourine

Pour iOS, vous devez ajouter LSApplicationQueriesSchemes comme paramètre de tableau à Info.plist et y ajouter des éléments.

Par exemple, pour lier AppStore, j'utilise itms-apps comme l'un des paramètres de ce tableau.

Votre lien devrait être comme ceci

itms-apps://iTunes.Apple.com/us/app/id${APP_STORE_LINK_ID}?mt=8.

Bien. Maintenant, vous avez tout ce qu'il faut pour faire le lien avec la méthode

handleClick () {
    Linking.canOpenURL(link).then(supported => {
        supported && Linking.openURL(link);
    }, (err) => console.log(err));
}
24
SerzN1

Utilisez Lien pour ouvrir l'URL de l'App Store. Pour construire l'URL appropriée, suivez les instructions pour iOS et/ou Android . Par exemple.

Linking.openURL('market://details?id=myandroidappid')

ou

Linking.openURL('itms://iTunes.Apple.com/us/app/Apple-store/myiosappid?mt=8')
19
outofculture

C'est quelque chose de similaire, il affiche une boîte d'alerte pour mettre à jour l'application et il ouvre le Play Store ou l'App Store en fonction du système d'exploitation de leur appareil.

function updateAppNotice(){
     const APP_STORE_LINK = 'itms://iTunes.Apple.com/us/app/Apple-store/myiosappid?mt=8';
     const PLAY_STORE_LINK = 'market://details?id=myandroidappid';
     Alert.alert(
        'Update Available',
        'This version of the app is outdated. Please update app from the '+(Platform.OS =='ios' ? 'app store' : 'Play Store')+'.',
        [
            {text: 'Update Now', onPress: () => {
                if(Platform.OS =='ios'){
                    Linking.openURL(APP_STORE_LINK).catch(err => console.error('An error occurred', err));
                }
                else{
                    Linking.openURL(PLAY_STORE_LINK).catch(err => console.error('An error occurred', err));
                }
            }},
        ]
    );
}
12
Simar

J'utilise ceci bibliothèque . semble assez bon. Il vous suffit de spécifier le nom du package et l'ID de l'App Store et d'appeler la fonction. Et c'est également multiplateforme.

render() {
        return (
            <View>
                <Button title="Rate App" onPress={()=>{
                    let options = {
                        AppleAppID:"2193813192",
                        GooglePackageName:"com.mywebsite.myapp",
                        AmazonPackageName:"com.mywebsite.myapp",
                        OtherAndroidURL:"http://www.randomappstore.com/app/47172391",
                        preferredAndroidMarket: AndroidMarket.Google,
                        preferInApp:false,
                        openAppStoreIfInAppFails:true,
                        fallbackPlatformURL:"http://www.mywebsite.com/myapp.html",
                    }
                    Rate.rate(options, (success)=>{
                        if (success) {
                            // this technically only tells us if the user successfully went to the Review Page. Whether they actually did anything, we do not know.
                            this.setState({rated:true})
                        }
                    })
                } />
            </View>
        )
    }
4
Nabeel K