2016-02-24 29 views

Trả lời

12

Đối với iOS bạn có thêm LSApplicationQueriesSchemes như mảng param để Info.plist và thêm các mục vào nó.

Ví dụ để liên kết AppStore, tôi sử dụng itms-apps làm một trong các tham số trong mảng này.

liên kết của bạn nên được như thế này

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

Vâng. Giờ đây, bạn có tất cả các công việc để liên kết thành phần với phương pháp

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

Lưu ý rằng 'LSApplicationQueriesSchemes' chỉ cần thiết khi xây dựng cho iOS 9+: http://facebook.github.io/react-native/docs/linking.html#canopenurl –

+0

Trình mô phỏng iOS cũng không cài đặt Cửa hàng Play, vì vậy điều này sẽ luôn thất bại trên simula tor. Bạn cần phải thử nghiệm trên một thiết bị thực. –

5

Sử dụng Linking để mở url tới cửa hàng ứng dụng. Để tạo url thích hợp, hãy làm theo hướng dẫn cho iOS và/hoặc android. Ví dụ.

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

hoặc

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

Tại sao bạn lại bỏ phiếu? Điều này không hoạt động? –

+0

Điều này sẽ hoạt động tốt, nhưng khi xây dựng cho iOS 9+, bạn cần thêm 'LSApplicationQueriesSchemes' như được mô tả tại đây: http://facebook.github.io/react-native/docs/linking.html#canopenurl –

+1

Trình mô phỏng iOS cũng không có Cửa hàng Play được cài đặt, do đó, nó sẽ luôn thất bại trên trình mô phỏng: ( –

3

Đây là một cái gì đó tương tự, nó cho thấy một hộp cảnh báo để cập nhật các ứng dụng và nó sẽ mở ra các cửa hàng chơi hoặc cửa hàng ứng dụng tùy thuộc vào os thiết bị của họ.

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

'mt = 8' làm gì? Tôi tự hỏi liệu đây có phải là khu vực cụ thể và cần thiết không? –

+1

@AnshulKoka, mt là viết tắt của " Loại phương tiện "và giá trị 8 tương ứng với" Ứng dụng phần mềm di động ". Để biết thêm thông tin, hãy xem https://stackoverflow.com/questions/1781427/what-is-mt-8-in-itunes-links-for-the-appstore – mihai1990

Các vấn đề liên quan