Usar WebView de Android

Algunas empresas necesitan insertar su proceso de compra web en sus aplicaciones móviles mediante WebView. En esta guía se describen los pasos que debes seguir para admitir Google Pay en tu WebView una vez que hayas completado la integración de Google Pay Web.

Requisitos de los dispositivos de los usuarios

Cambios necesarios en la aplicación

La API Payment Request se usa para iniciar la hoja de Google Pay cuando el proceso de tramitación de la compra web se inserta en un WebView de Android. De forma predeterminada, la API Payment Request estará inhabilitada en WebView. Debe hacer los siguientes cambios en el código de su aplicación:

Añade (o actualiza) una 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" }

Añade 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 Payment Request en la WebView que uses en tu aplicación.

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

Publicar tu integración

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