Niektóre firmy wymagają możliwości osadzania procesu płatności w aplikacjach mobilnych za pomocą elementu WebView. Ten przewodnik zawiera instrukcje, jak włączyć obsługę Google Pay w WebView po zakończeniu integracji Google Pay w internecie.
Wymagania dotyczące urządzeń użytkowników
- Usługi Google Play w wersji 25.18.30 lub nowszej
- Android Webview for Chrome w wersji 137 lub nowszej.
Wymagane zmiany w aplikacji
Payment Request API służy do uruchamiania arkusza Google Pay, gdy proces płatności w internecie jest osadzony w widoku WebView na Androidzie. Domyślnie interfejs Payment Request API będzie wyłączony w przypadku komponentu WebView. Wymagane zmiany w kodzie aplikacji:
Dodaj (lub zaktualizuj) zależność kompilacji:
Groovy
dependencies { implementation 'androidx.webkit:webkit:1.14.0' }
Kotlin
dependencies { implementation("androidx.webkit:webkit:1.14.0") }
Katalog wersji
[versions] webkit = "1.14.0" [libraries] androidx-ktx = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }
Dodaj do pliku AndroidManifest.xml te tagi <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>
Włącz interfejs Payment Request API w widoku WebView używanym w aplikacji.
Upewnij się, że używasz prawidłowej instrukcji importu dla używanego kodu.
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); }
Publikowanie integracji
Aby aplikacja mogła korzystać z Google Pay w Android WebView, musisz opublikować przewodnik po integracji.