Utilizzo di Android WebView

Alcune attività richiedono la possibilità di incorporare la procedura di pagamento web nelle proprie applicazioni mobile utilizzando WebView. Questa guida illustra i passaggi necessari per supportare Google Pay in WebView dopo aver completato l'integrazione web di Google Pay.

Requisiti dei dispositivi degli utenti

Modifiche alle app richieste

L'API Payment Request viene utilizzata per avviare il foglio Google Pay quando la procedura di pagamento web è incorporata in una WebView di Android. Per impostazione predefinita, l'API Payment Request verrà disabilitata per WebView. Sono necessarie le seguenti modifiche al codice dell'app:

Aggiungi (o aggiorna) la dipendenza di build:

Groovy

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

Kotlin

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

Catalogo delle versioni

[versions]
webkit = "1.14.0"

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

Aggiungi i seguenti tag <queries> al file 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>
    

Abilita l'API Payment Request per la WebView che utilizzi nella tua app.

Assicurati di utilizzare l'istruzione di importazione corretta per il codice che stai utilizzando.

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

Pubblica l'integrazione

Affinché la tua app possa utilizzare Google Pay all'interno di Android WebView, devi completare la pubblicazione della guida all'integrazione.