Как использовать Android WebView

Некоторым компаниям необходимо встраивать процесс оформления покупки на сайте в мобильные приложения с помощью WebView. В этом руководстве рассказывается, как добавить поддержку Google Pay в WebView после того, как вы выполнили интеграцию с Google Pay для сайта.

Требования к устройствам пользователей

  • Сервисы Google Play версии 25.18.30 или более поздней.
  • Android Webview для Chrome версии 137 или более поздней.

Обязательные изменения в приложении

Payment Request API используется для запуска страницы Google Pay, когда процесс оформления покупки на сайте встроен в Android WebView. По умолчанию Payment Request API будет отключен для WebView. Вам необходимо внести в код приложения следующие изменения:

Добавьте (или обновите) зависимость сборки:

Groovy

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

Kotlin

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

Каталог версий

[versions]
webkit = "1.14.0"

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

Добавьте в файл AndroidManifest.xml следующие теги <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>
    

Включите Payment Request API для WebView, используемого в вашем приложении.

Убедитесь, что вы используете правильный оператор импорта для кода.

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

Как опубликовать интеграцию

Чтобы ваше приложение могло использовать Google Pay в Android WebView, вам необходимо опубликовать руководство по интеграции.