2016-02-24 9 views

risposta

12

Per iOS si deve aggiungere LSApplicationQueriesSchemes come array param per Info.plist e aggiungere elementi ad esso.

Ad esempio per il collegamento AppStore Io uso itms-apps come uno dei parametri in questo array.

vostro collegamento dovrebbe essere simile a questo

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

Bene. Ora hai tutto da fare Link componente con metodo

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

Si noti che 'LSApplicationQueriesSchemes' è necessario solo quando si crea iOS 9+: http://facebook.github.io/react-native/docs/linking.html#canopenurl –

+0

Anche il simulatore iOS non ha installato il Play Store, quindi questo fallirà sempre sulla simulazione tor. Devi testare su un dispositivo reale. –

5

Utilizzare Linking per aprire l'URL nell'app store. Per creare l'URL corretto, seguire le istruzioni per iOS e/o android. Per esempio.

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

o

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

Perché il downvote? Non funziona? –

+0

Questo dovrebbe funzionare, ma quando si sta sviluppando per iOS 9+, è necessario aggiungere 'LSApplicationQueriesSchemes' come descritto qui: http://facebook.github.io/react-native/docs/linking.html#canopenurl –

+1

Il simulatore iOS inoltre non ha installato Play Store, quindi sul simulatore non funzionerà mai :( –

3

Si tratta di qualcosa di simile, mostra una finestra di avviso per aggiornare l'applicazione e si apre il Play Store o App Store a seconda del loro sistema operativo del dispositivo.

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

Cosa fa 'mt = 8'? Mi chiedo se questa è specifica della regione e necessaria? –

+1

@AnshulKoka, mt sta per" Tipo di supporto "e il valore 8 corrisponde a" Applicazioni software mobile ". Per ulteriori informazioni, consultare https://stackoverflow.com/questions/1781427/what-is-mt-8-in-itunes-links-for-the-appstore – mihai1990