如何制作一个"为此应用评分" React Native应用程序中的链接?

时间:2016-02-24 20:26:46

标签: ios app-store react-native

如何在iOS上的React Native应用程序中将用户正确链接到App Store应用程序的评论页面?

6 个答案:

答案 0 :(得分:21)

对于iOS,您必须将LSApplicationQueriesSchemes作为数组参数添加到Info.plist并向其中添加项目。

例如,对于AppStore链接,我使用itms-apps作为此数组中的一个参数。

您的链接应该是这样的

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

好。现在,您可以使用方法

进行链接组件
handleClick () {
    Linking.canOpenURL(link).then(supported => {
        supported && Linking.openURL(link);
    }, (err) => console.log(err));
}

答案 1 :(得分:17)

使用Linking打开应用商店的网址。要构建正确的网址,请按照iOS和/或android的说明操作。 E.g。

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

Linking.openURL('itms://itunes.apple.com/us/app/apple-store/myiosappid?mt=8')

答案 2 :(得分:10)

这是类似的,它显示了一个警告框来更新应用程序,它会打开游戏商店或应用程序商店,具体取决于他们的设备操作系统。

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

答案 3 :(得分:3)

我正在使用此library。看起来还不错。您只需指定包名称和App Store ID并调用该函数即可。而且它也是跨平台的。

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 :(得分:2)

2021 年更新:

其他一些答案很旧,不支持使用 iOS 10.3 (SKStoreReviewController) 和 Android 5 (ReviewManager) 中添加的应用内评论 API。如果您要在 2021 年为您的 React Native 应用添加评论,则最好使用这些评论(如果它们可用)。

Expo 提供了一个库 https://docs.expo.io/versions/latest/sdk/storereview/ ,如果用户的设备支持这些更新的 API,它将使用这些更新的 API,如果不支持,则回退到打开商店页面。

还有 https://github.com/KjellConnelly/react-native-rate 具有类似的功能,但有更多的配置选项。例如。您可以决定是否在部分或全部时间使用应用内 API(这可能是个好主意,因为应用内 API 对用户的摩擦要小得多,但您一次只能询问几次年)。

答案 5 :(得分:0)

使用第三方库,在ios中它正在打开iTunes,让我告诉您打开应用程序商店的确切方法。 您的第一件事应该是活的,并且可以在物理设备上运行(不保证模拟器)

const url = Platform.OS === 'android' ?
                    'https://play.google.com/store/apps/details?id=YOUR_APP_ID'   :  'https://apps.apple.com/us/app/doorhub-driver/id_YOUR_APP_ID'
                Linking.openURL(url)

您可以通过在appstore上搜索应用程序并复制该URL来找到ios链接。