使用 Android WebView

有些商家需要能够使用 WebView 将其网页结账流程嵌入到移动应用中。本指南将引导您完成在 WebView 中支持 Google Pay 所需的步骤,前提是您已完成 Google Pay Web 集成

用户设备要求

必需的应用更改

当网页结账流程嵌入到 Android WebView 中时,Payment Request API 用于启动 Google Pay 界面。 默认情况下,Payment Request API 将针对 WebView 处于停用状态。您需要对应用代码进行以下更改:

添加(或更新)build 依赖项:

Groovy

dependencies {
    implementation 'androidx.webkit:webkit:1.14.0'
}

Kotlin

dependencies {
    implementation("androidx.webkit:webkit:1.14.0")
}

版本目录

[versions]
webkit = "1.14.0"

[libraries]
androidx-ktx = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }

将以下 <queries> 标记添加到 AndroidManifest.xml:

<queries>
  <intent>
    <action android:name="org.chromium.intent.action.PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.IS_READY_TO_PAY"/>
  </intent>
  <intent>
    <action android:name="org.chromium.intent.action.UPDATE_PAYMENT_DETAILS"/>
  </intent>
</queries>
    

为应用中使用的 WebView 启用 Payment Request API。

请务必为所使用的代码使用正确的 import 语句。

Kotlin

import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;

AndroidView(
    factory = {
        // Update WebView settings to allow JavaScript and payment request
        settings.javaScriptEnabled = true
        WebView(it).apply {
            if (WebViewFeature.isFeatureSupported(
                    WebViewFeature.PAYMENT_REQUEST)) {
                WebSettingsCompat.setPaymentRequestEnabled(settings, true);
            }
        }
    },
    update = {it.loadUrl(url)
    }
)
      

Java

import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.webkit.WebSettingsCompat;
import androidx.webkit.WebViewFeature;

WebView webView = findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();

// Update WebView settings to allow JavaScript and payment request
webSettings.setJavaScriptEnabled(true);
if (WebViewFeature.isFeatureSupported(
          WebViewFeature.PAYMENT_REQUEST)) {
    WebSettingsCompat.setPaymentRequestEnabled(webSettings, true);
}
      

发布集成

为了让您的应用能够在 Android WebView 中使用 Google Pay,您必须完成发布集成指南