2

稍后我们将在我们的应用中实施应用内配置。现在,我希望能够添加一个按钮,该按钮将启动 Google Pay应用程序以允许用户添加付款方式。

我已经看到了如何启动 Google Play 的代码。我希望它是相似的,但具有不同的 URI。

任何人都可以帮忙。

4

2 回答 2

0

我在我们的应用程序中提出了这个解决方案。该应用程序是使用 React Native 构建的,我实现了一个按钮,该按钮调用本机 Java 模块中的方法(如果您想知道为什么我在这里使用 Promise):

NativeModule.java

@ReactMethod
public void jumpToWallet(Promise promise) {
    // Check first if wallet is installed
    String packageName = "com.google.android.apps.walletnfcrel";
    Context appContext = reactContext.getApplicationContext();
    PackageManager pm = appContext.getPackageManager();
    boolean installed = false;
    try {
        pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
        installed = true;

    } catch (PackageManager.NameNotFoundException e) {
        promise.reject("WALLET_NOT_FOUND", "Couldn't find wallet");
    }
    if (installed) {
        Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
        if (launchIntent != null) {
            appContext.startActivity(launchIntent);
        } else {
            promise.reject("WALLET_NOT_LAUNCHABLE", "Couldn't launch wallet");
        }
    }
}
于 2020-08-27T14:34:59.843 回答
0

好的 - 还没有完全实现,但我确实觉得我只需要启动一个应用程序。因此,为此我将手机连接到我的 PC 并运行 Android 设备监视器。在我的手机上启动了 Google Pay,并在小麦和谷壳中进行了分类,找到了当前为“com.google.android.apps.walletnfcrel”的包名。

再谷歌搜索一下,我找到了一种方法来测试应用程序是否已安装......

private bool isAppInstalled(String packageName)
{
    var context = Android.App.Application.Context;

    var pm = context.PackageManager;
    bool installed = false;
    try
    {
        pm.GetPackageInfo(packageName, Android.Content.PM.PackageInfoFlags.Activities);
        installed = true;

    }
    catch (Exception e)
    {
        //Handle this nicer
        installed = false;
    }
    return installed;
}

...然后如果已安装,我可以按如下方式启动它.....

        var googlePayPackageNAme = "com.google.android.apps.walletnfcrel";
        var context = Android.App.Application.Context;
        Intent gpIntent = context.PackageManager.GetLaunchIntentForPackage(googlePayPackageNAme);
        context.StartActivity(gpIntent);

现在我对此感到满意.....还有其他事情要做,但我会在以后尝试实际触发添加付款方式流程。

感谢 SO 上的其他帖子。希望这对其他人有帮助。

于 2019-06-04T08:36:14.500 回答