Некоторым компаниям требуется возможность встраивать процесс оформления заказа с веб-сайта в свои мобильные приложения с помощью WebView. В этом руководстве описаны шаги, необходимые для поддержки Google Pay в вашем WebView после завершения интеграции Google Pay Web .
Требования к пользовательскому устройству
- Версия Google Play Services 25.18.30 или выше.
- Android Webview для Chrome версии 137 или выше
Необходимые изменения в приложении
API запроса платежа используется для запуска окна Google Pay, когда процесс оформления заказа в веб-интерфейсе встроен в Android WebView. По умолчанию API запроса платежа отключен для WebView. Для этого необходимы следующие изменения в коде вашего приложения:
Добавить (или обновить) зависимость сборки:
Классный
dependencies { implementation 'androidx.webkit:webkit:1.14.0' }
Котлин
dependencies { implementation("androidx.webkit:webkit:1.14.0") }
Каталог версий
[versions] webkit = "1.14.0" [libraries] androidx-ktx = { group = "androidx.webkit", name = "webkit", version.ref = "webkit" }
Добавьте следующие теги <queries> в файл 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>
Включите API запроса платежа для WebView, используемого в вашем приложении.
Убедитесь, что используете правильный оператор импорта для используемого вами кода.
Котлин
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); }
Опубликуйте свою интеграцию
Для того чтобы ваше приложение могло использовать Google Pay в Android WebView, необходимо выполнить руководство по публикации интеграции.