استخدام Android WebView

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

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

  • الإصدار 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)
    }
)
      

جافا

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