使用 Android WebView

部分商家需要使用 WebView,將網路結帳程序嵌入行動應用程式。本指南將逐步說明完成 Google Pay 網頁整合後,如何在 WebView 中支援 Google Pay。

使用者裝置需求

必須變更應用程式

當網頁結帳程序嵌入 Android WebView 時,系統會使用 Payment Request API 啟動 Google Pay 結帳頁面。 根據預設,WebView 會停用 Payment Request API。您必須對應用程式碼進行下列變更:

新增 (或更新) 建構依附元件:

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" }

在 AndroidManifest.xml 中加入下列 <queries> 標記:

<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。

請務必為使用的程式碼加入正確的匯入陳述式。

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,您必須完成發布整合指南