Uso de Android WebView

Algunas empresas requieren la capacidad de incorporar su proceso de confirmación de compra web en sus aplicaciones para dispositivos móviles a través de WebView. En esta guía, se explican los pasos necesarios para admitir Google Pay en tu WebView después de completar la integración de Google Pay Web.

Requisitos del dispositivo del usuario

Cambios obligatorios en la app

La API de Payment Request se usa para iniciar la hoja de Google Pay cuando el proceso de confirmación de compra web está integrado en un WebView de Android. De forma predeterminada, la API de Payment Request estará inhabilitada para WebView. Se requieren los siguientes cambios en el código de tu app:

Agrega (o actualiza) la dependencia de compilación:

Groovy

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

Kotlin

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

Catálogo de versiones

[versions]
webkit = "1.14.0"

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

Agrega las siguientes etiquetas <queries> a tu archivo 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>
    

Habilita la API de Payment Request para la WebView que usas en tu app.

Asegúrate de usar la instrucción de importación correcta para el código que estás usando.

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

Publica tu integración

Para que tu app pueda usar Google Pay en Android WebView, debes completar la guía de publicación de tu integración.