استخدام Android WebView

تحتاج بعض الأنشطة التجارية إلى إمكانية تضمين عملية الدفع على الويب في تطبيقاتها على الأجهزة الجوّالة باستخدام WebView. يرشدك هذا الدليل إلى الخطوات اللازمة لتفعيل Google Pay في WebView بعد إكمال عملية الدمج مع Google Pay Web.

متطلبات أجهزة المستخدمين

  • الإصدار 25.18.30 أو إصدار أحدث من "خدمات Google Play"
  • الإصدار 137 أو الإصدارات الأحدث من Android Webview for Chrome

التغييرات المطلوبة في التطبيق

يتم استخدام 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" }

أضِف علامات <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>
    

فعِّل 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، عليك إكمال دليل النشر الخاص بعملية الدمج.