React iOSのネイティブアプリケーションでApp Storeアプリのレビューページにユーザーを適切にリンクする方法?
IOSの場合、LSApplicationQueriesSchemes
を配列パラメーターとしてInfo.plist
に追加し、アイテムを追加する必要があります。
たとえば、AppStoreリンクには、この配列のパラメータの1つとして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));
}
これは似たようなもので、アプリを更新するためのアラートボックスが表示され、デバイスのOSに応じてPlayストアまたはアプリストアが開きます。
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));
}
}},
]
);
}
私はこれを使用しています library 。かなり良いようです。パッケージ名とアプリストア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>
)
}