Android WebView verwenden

Einige Unternehmen müssen ihren Web-Checkout-Prozess mithilfe einer WebView in ihre mobilen Anwendungen einbetten können. In dieser Anleitung werden die Schritte beschrieben, die erforderlich sind, um Google Pay in Ihrer WebView zu unterstützen, nachdem Sie die Google Pay-Webintegration abgeschlossen haben.

Anforderungen an Nutzergeräte

Erforderliche Änderungen an der App

Die Payment Request API wird verwendet, um das Google Pay-Sheet zu starten, wenn der Web-Checkout-Prozess in eine Android WebView eingebettet ist. Standardmäßig ist die Payment Request API für WebView deaktiviert. Folgende Änderungen am App-Code sind erforderlich:

Build-Abhängigkeit hinzufügen (oder aktualisieren):

Groovy

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

Kotlin

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

Versionskatalog

[versions]
webkit = "1.14.0"

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

Fügen Sie Ihrer AndroidManifest.xml-Datei die folgenden <queries>-Tags hinzu:

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

Aktivieren Sie die Payment Request API für die WebView, die Sie in Ihrer App verwenden.

Achten Sie darauf, dass Sie die richtige Importanweisung für den verwendeten Code verwenden.

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);
}
      

Integration veröffentlichen

Damit Ihre App Google Pay in Android WebView verwenden darf, müssen Sie die Anleitung zum Veröffentlichen Ihrer Integration durchlaufen.