Как программно открыть приложение Tez (приложение Google Pay в Индии) в React Native для Android? - PullRequest
0 голосов
/ 24 октября 2018

Tez - популярный способ оплаты в Индии.

 tezFunc()
      {

        const url = 'com.google.android.apps.nbu.paisa.user://';
          Platform.OS === 'android' ? 

   Linking.canOpenURL(url).then(supported => {
    if (!supported) {

        Linking.openURL('https://play.google.com/store/apps/details?id=com.google.android.apps.nbu.paisa.user&hl=en_IN')
    }else {
      return Linking.openURL(url);
}

 }).catch(err => console.error('An error occurred', err))
 :
          Linking.openURL('https://itunes.apple.com/in/app/google-pay-for-india-tez/id1193357041?mt=8')
        }

Здесь я передаю идентификатор пакета приложения в качестве URL-адреса.Это работает так, что каждый раз, когда открывается Play Store, я не знаю, как этого добиться.Я хочу открыть приложение, если оно присутствует в устройстве, или открыть ссылку Play Store.

Однако я добился этого в случае WhatsApp, но в случае Tez это не работает.

Это в случае, если WhatsApp работает

_whatsaap = () =>
{
  const url = 'whatsapp://send?text=. I have an enquiry, please reply me ASAP!&phone=**********';
  Linking.canOpenURL(url).then(supported => {
   if (!supported) {
    Alert.alert(
      'Comet Graphic',
      'Sorry, The app is not installed in your device! Press OK to install it now!',
      [{
        text: 'OK', onPress: () =>Linking.openURL(' https://play.google.com/store/apps/details?id=com.whatsapp') },
        {text: 'Cancel'},
       ], {
        cancelable: false
      }
    )

Как этого добиться в Tez?

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Я создал пакет npm, чтобы позволить разработчикам ReactNative принимать платежи для мобильного приложения.

https://www.npmjs.com/package/react-native-google-pay-tez

Попробуйте это.

Примечание: Google поддерживает только Androidнамерение принимать платежи через установленное приложение Google Pay.Для iOS вам нужно будет использовать омни-канал, по которому вам нужно будет связаться с ними.

0 голосов
/ 24 октября 2018

Я нашел следующий модуль: https://www.npmjs.com/package/react-native-send-intent#example--check-if-an-application-is-installed

Я думаю, вы можете попробовать следующее:

  1. Проверьте, установлено ли приложение на пользовательском устройстве с помощью: SendIntentAndroid.isAppInstalled ('com.google.android.gm'). then ((isInstalled) => {});

  2. Если установлено, выполните:

    SendIntentAndroid.openApp ('com.google.android.gm'). then ((wasOpened) => {});

    и, если вы хотите передать дополнительные параметры, используйте:

    SendIntentAndroid.openApp ('com.mycorp.myapp ', {"com.mycorp.myapp.reason": "только потому, что", "com.mycorp.myapp.data": "должно быть строкой"}). then ((wasOpened) => {});

Я не уверен, как это работает, но насколько я вижу, вы можете установить apk напрямую, используя:

SendIntentAndroid.installRemoteApp ('https://example.com/my-app.apk', 'my-save-app.apk'). Then ((installWasStarted) => {});

Обновление: попробуйте следующий пример кода:

_tez = () => {
SendIntentAndroid.isAppInstalled('com.tez.blablabla').then((isInstalled) => {
    if (isInstalled) {
        SendIntentAndroid.openApp('com.google.android.gm').then((wasOpened) => {
            if (wasOpened) {
                console.log("App opened");
            }
            else {
                console.log("Error opening app or it was not opened");
            }
        });
    }
});}
...