WebKit
التعديل الأخير | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | إصدار ألفا |
---|---|---|---|---|
12 حزيران (يونيو) 2024 | 1.9.0 | - | - | 1.12.0-alpha02 |
إعلان التبعيات
لإضافة تبعية إلى Webkit، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو الوحدة الخاصة بك:
Groovy
dependencies { implementation "androidx.webkit:webkit:1.9.0" }
Kotlin
dependencies { implementation("androidx.webkit:webkit:1.9.0") }
لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
الإصدار 1.12
الإصدار 1.12.0-alpha02
12 حزيران (يونيو) 2024
تم طرح "androidx.webkit:webkit:1.12.0-alpha02
". يحتوي الإصدار 1.12.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
- إضافة واجهة برمجة تطبيقات جديدة إلى
WebSettingsCompat
لتفعيل/إيقافBackForwardCache
. إنّ واجهة برمجة التطبيقات هذه تجريبية ويمكن تغييرها في المستقبل. (I64a38) - يمكنك إضافة واجهة برمجة تطبيقات جديدة إلى
WebSettingsCompat
للتحكّم في سلوك التحميل المبني على توقُّع لإعدادات الويب هذه. لا يتوفّر حاليًا سوى العرض المُسبَق. إنّ واجهة برمجة التطبيقات هذه تجريبية ويمكن تغييرها في المستقبل. (I13962)
تغييرات واجهة برمجة التطبيقات
- تم الآن توثيق بعض الطرق باستخدام
@UiThread
عندما يكون ذلك مناسبًا. (I6c7e0)، (I44541) - تم الآن توثيق الطُرق الآمنة لسلسلة المحادثات من خلال
@AnyThread
. (I70189) - جارٍ زيادة
minSdkVersion
من 19 إلى 21. (Id7a43)
الإصدار 1.12.0-alpha01
17 نيسان (أبريل) 2024
تم طرح "androidx.webkit:webkit:1.12.0-alpha01
". يحتوي الإصدار 1.12.0-alpha01 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات جديدة لتفعيل مصادقة الويب في
WebView. Developers
. ويمكن لهذه الواجهة تفعيل/إيقاف طلباتWebAuthn
فيWebView
للتطبيقات التي تستخدمWebSettingsCompat#setWebAuthenticationSupport
. (I8187f)
الإصدار 1.11
الإصدار 1.11.0
1 أيار (مايو) 2024
تم طرح "androidx.webkit:webkit:1.11.0
". يتضمّن الإصدار 1.11.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.10.0
- يمكنك السماح للتطبيقات بالتحكم في تشغيل الصوت في
WebView
من خلال واجهتَي برمجة التطبيقاتsetAudioMuted
وisAudioMuted
الجديدَين، والتي تشبه كتم صوت علامة تبويب في Chrome. - تم توفير
URLUtilCompat
، والتي تتيح تحليل عناوينContent-Disposition
التي تستخدم سمة القيمة المشفرةfilename*
على النحو المحدّد في RFC 6266. تعرض واجهة برمجة التطبيقات المتوافقة أيضًا بشكل مباشر طريقة لتحليل عنوانContent-Disposition
حيث لا يكون من المطلوب استخدام اسم ملف مقترَح استنادًا إلى عنوان URL ونوع MIME.
الإصدار 1.11.0-rc01
3 نيسان (أبريل) 2024
تم طرح "androidx.webkit:webkit:1.11.0-rc01
". لا يحتوي هذا الإصدار على أي تغييرات من إصدار 1.11.0-beta01
.
الإصدار 1.11.0-beta01
20 آذار (مارس) 2024
تم إطلاق "androidx.webkit:webkit:1.11.0-beta01
" بدون أي تغييرات ملحوظة. يحتوي الإصدار 1.11.0-beta01 على هذه الالتزامات.
الإصدار 1.11.0-alpha02
21 شباط (فبراير) 2024
تم طرح "androidx.webkit:webkit:1.11.0-alpha02
". يحتوي الإصدار 1.11.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
- أضِف طريقتَي
setAudioMuted
وisAudioMuted
لكتم الصوت (وإلغاء تجاهل)WebViews
. تتيح لك هذه الطريقة منعWebView
من تشغيل الصوت. (Ie7a33)
تغييرات واجهة برمجة التطبيقات
- تم جعل
URLUtilCompat
نهائيًا لأنه لا ينبغي تصنيفه فرعيًا. (I49ec1)
الإصدار 1.11.0-alpha01
7 شباط (فبراير) 2024
تم طرح "androidx.webkit:webkit:1.11.0-alpha01
". يحتوي الإصدار 1.11.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- إضافة توافق مع
URLUtil.guessFileName
يتيح إصدار التوافق فيURLUtilCompat
تحليل عناوينContent-Disposition
التي تستخدم سمة القيمة المشفَّرةfilename*
على النحو المحدّد في RFC 6266. تعرض واجهة برمجة التطبيقات المتوافقة أيضًا بشكل مباشر طريقة لتحليل عنوانContent-Disposition
حيث لا يكون من المطلوب استخدام اسم ملف مقترَح استنادًا إلى عنوان URL ونوع MIME. (If6ae7، b/309927164)
الإصدار 1.10
الإصدار 1.10.0
24 كانون الثاني (يناير) 2024
تم طرح "androidx.webkit:webkit:1.10.0
". يتضمّن الإصدار 1.10.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.9.0
- تمت إضافة واجهة برمجة تطبيقات جديدة إلى WebSettingsCompat للتحكُّم في سلوك Android WebView Media Integrity API التجريبي عن طريق إيقاف واجهة برمجة التطبيقات بالكامل أو حظر مشاركة هوية التطبيق في استجابة واجهة برمجة التطبيقات. ويمكن تفعيل هذا الإعداد لكل المصادر وحسب كل مصدر.
الإصدار 1.10.0-rc01
10 كانون الثاني (يناير) 2024
تم طرح "androidx.webkit:webkit:1.10.0-rc01
". لا يحتوي هذا الإصدار على أي تغييرات من إصدار 1.10.0-beta01
.
الإصدار 1.10.0-beta01
13 كانون الأول (ديسمبر) 2023
تم طرح "androidx.webkit:webkit:1.10.0-beta01
". يتضمّن الإصدار 1.10.0-beta01 هذه الالتزامات.
- ما مِن تغييرات وظيفية من
1.10.0-alpha01
.
الإصدار 1.10.0-alpha01
29 تشرين الثاني (نوفمبر) 2023
تم طرح "androidx.webkit:webkit:1.10.0-alpha01
". يتضمّن الإصدار 1.10.0-alpha01 هذه الالتزامات.
الميزات الجديدة
- تمت إضافة واجهة برمجة تطبيقات جديدة إلى
WebSettingsCompat
للتحكّم في السلوك التجريبي لواجهة برمجة التطبيقات Android WebView Media Integrity API عن طريق إيقاف واجهة برمجة التطبيقات بالكامل أو حظر مشاركة هوية التطبيق في استجابة واجهة برمجة التطبيقات. ويمكن تفعيل هذا الإعداد لكل المصادر وحسب كل مصدر.
الإصدار 1.9
الإصدار 1.9.0
29 تشرين الثاني (نوفمبر) 2023
تم طرح "androidx.webkit:webkit:1.9.0
". يتضمّن الإصدار 1.9.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.8.0
- إضافة واجهة برمجة تطبيقات جديدة متعددة الملفات الشخصية لمكوّنات WebView
- تتضمّن واجهة الملف الشخصي واجهات برمجة تطبيقات مختلفة يمكن استخدامها للحصول على البيانات المرتبطة بهذا الملف الشخصي، مثل اسمه وGeoLocationPermissions وServiceWorkerController وCookieManager وWebStorage. وهذه الكائنات خاصة بالملف الشخصي، ولا تتم مشاركة المعلومات بين الملفات الشخصية المختلفة في التطبيق.
- يمكن تغيير الملف الشخصي الذي يستخدمه مثيل
WebView
باستخدام طريقة WebViewCompat#setProfile واستردادها باستخدام WebViewCompat#getProfile - يتيح لك ProfileStore الذي تم طرحه مؤخرًا إدارة الملفات الشخصية المتاحة في تطبيقك، بما في ذلك الملف الشخصي التلقائي.
- ستستمر واجهات برمجة تطبيقات WebView الحالية، مثل CookieManager#getInstance في العمل على الملف الشخصي التلقائي.
- تمت إضافة واجهة برمجة تطبيقات لإدخال JavaScript وتشغيلها قبل تحميل الصفحة.
- تسمح واجهة برمجة التطبيقات WebViewCompat#addDocumentStartJavascript للتطبيقات بإدخال نصوص برمجية في
WebView
يمكن ضمان تشغيلها قبل تنفيذ أي نصوص برمجية للصفحة. تسمح واجهة برمجة التطبيقات للتطبيق بتحديد قائمة هدف من المصادر لتفعيل النص البرمجي، ما يضمن أنّه لا يتم تشغيله إلا على الصفحات المقصودة. وعلى عكس WebView#assessJavascript، ستسمح واجهة برمجة التطبيقات هذه بتنفيذ النصوص البرمجية في إطارات Iframe المضمّنة عند تحميلها. يمكن للتطبيقات استخدام واجهة برمجة التطبيقات الجديدة هذه مع WebViewCompat#addWebMessageListener لإعداد اتصال ثنائي الاتجاه باستخدام JavaScript في الصفحة بطريقة موثوقة.
- تسمح واجهة برمجة التطبيقات WebViewCompat#addDocumentStartJavascript للتطبيقات بإدخال نصوص برمجية في
- إضافة واجهات برمجة تطبيقات لتعديل كيفية تسجيل أحداث تحديد المصدر في "مبادرة حماية الخصوصية"
- قدّمنا واجهة برمجة التطبيقات الجديدة WebSettingsCompat#setAttributionRegistrationBehavior الجديدة التي تتيح للمطوّرين تحديد ما إذا كان سيتم تسجيل مصادر تحديد المصدر وعوامل التشغيل سواء كانت مصدرها التطبيق نفسه أو مصدرها محتوى الويب في WebView. يمكن استخدام هذه الطريقة أيضًا لإيقاف إعداد تقارير تحديد المصدر في WebView. بالإضافة إلى ذلك، أضفنا واجهة برمجة التطبيقات
WebSettingsCompat#getAttributionRegistrationBehavior
الجديدة للاستفادة من السلوك الحالي. - لمزيد من المعلومات، اطّلِع على مستندات "مبادرة حماية الخصوصية".
- قدّمنا واجهة برمجة التطبيقات الجديدة WebSettingsCompat#setAttributionRegistrationBehavior الجديدة التي تتيح للمطوّرين تحديد ما إذا كان سيتم تسجيل مصادر تحديد المصدر وعوامل التشغيل سواء كانت مصدرها التطبيق نفسه أو مصدرها محتوى الويب في WebView. يمكن استخدام هذه الطريقة أيضًا لإيقاف إعداد تقارير تحديد المصدر في WebView. بالإضافة إلى ذلك، أضفنا واجهة برمجة التطبيقات
- واجهات برمجة تطبيقات مضافة لإلغاء البيانات الوصفية لوكيل المستخدم لتلميحات العميل
- قدّمنا واجهة برمجة تطبيقات جديدة، وهي WebSettingsCompat#setUserAgentMetadata لإلغاء البيانات الوصفية لوكيل المستخدم في WebView المستخدَمة لتعبئة تلميحات برنامج وكيل المستخدم، كما أضفنا أيضًا واجهة برمجة تطبيقات جديدة أخرى وهي WebSettingsCompat#getUserAgentMetadata للحصول على عمليات تجاهل وكيل المستخدم الحالية. ننصح التطبيقات باستخدام واجهة برمجة التطبيقات الجديدة لتحديد قيم الإلغاء الصحيحة عندما يغيّر التطبيق سلسلة وكيل المستخدم التلقائية من خلال WebSettings.setUserAgentString لضمان استخدام القيم الصحيحة في جميع الحالات.
الإصدار 1.9.0-rc01
15 تشرين الثاني (نوفمبر) 2023
تم طرح "androidx.webkit:webkit:1.9.0-rc01
". لا يحتوي هذا الإصدار على أي تغييرات من إصدار 1.9.0-beta01
.
الإصدار 1.9.0-beta01
1 تشرين الثاني (نوفمبر) 2023
تم طرح "androidx.webkit:webkit:1.9.0-beta01
". يتضمّن الإصدار 1.9.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- عالِج مشكلة القيمة الفارغة لواجهة برمجة تطبيقات البيانات الوصفية لوكيل المستخدم. يتم تعديل الفئة
BrandVersion
لاستخدام نمط أداة الإنشاء، ونحرص على اتساق قيم getter وsetter لفئةUserAgentMetadata
بشكل متّسق. (Ibf195) - إضافة تعليقات توضيحية إلى
ProfileStore
وWebViewCompat#setProfile
وWebViewCompat.getProfile
باستخدام@UiThread
(I499b2)
الإصدار 1.9.0-alpha01
18 تشرين الأول (أكتوبر) 2023
تم طرح "androidx.webkit:webkit:1.9.0-alpha01
". يتضمّن الإصدار 1.9.0-alpha01 هذه الالتزامات.
الميزات الجديدة
- أضفنا واجهة برمجة التطبيقات متعددة الملفات الشخصية التي تتيح لك إجراء جلسات تصفُّح منفصلة بين
WebViews
، ولكل ملف شخصي بياناته (مثل ملفات تعريف الارتباط). يمكنك إنشاء ملفات شخصية وتعيينها إلىWebView
مثيل واستردادها لاحقًا لأي إذن بالوصول إلى البيانات. هناك فئةProfileStore
من المفردات الفردية لمساعدتك في إدارة الملفات التجارية عن طريق إنشائها أو حذفها باستخدام واجهات برمجة التطبيقات،getOrCreateProfile
وgetProfile
وgetAllProfileNames
وdeleteProfile
. سيكون للصفProfile
واجهات برمجة تطبيقات مختلفة لاستخدامها للحصول على البيانات المرتبطة بهذا الملف الشخصي، مثل الاسم وGeoLocationPermissions
وServiceWorkerController
وCookieManager
وWebStorage
. سيتم تشغيل كلWebView
باستخدام الملف الشخصي التلقائي، ومع ذلك يمكنك تغيير ذلك باستخدامWebViewCompat#setProfile
. في ما يتعلّق بذلك، يمكن استرداد ملفWebView
الشخصي باستخدامWebViewCompat#getProfile
. (I32d22) - إضافة واجهات برمجة التطبيقات لتعديل طريقة تسجيل أحداث إعداد تقارير تحديد المصدر قدّمنا واجهة برمجة تطبيقات
WebSettingsCompat#setAttributionRegistrationBehavior
جديدة تتيح للمطوّرين تحديد ما إذا كان سيتم تسجيل المصادر وعوامل التشغيل باعتبارها مصدرها التطبيق نفسه أو الواردة من محتوى الويب فيWebView
. يمكن أيضًا استخدام هذه الطريقة لإيقاف إعداد تقارير تحديد المصدر فيWebView
. بالإضافة إلى ذلك، أضفنا واجهة برمجة التطبيقاتWebSettingsCompat#getAttributionRegistrationBehavior
الجديدة للاستفادة من السلوك الحالي. لمزيد من المعلومات، اطّلِع على مستندات "مبادرة حماية الخصوصية". (I661f2) - إضافة واجهات برمجة التطبيقات لإلغاء البيانات الوصفية لوكيل المستخدم قدّمنا واجهة برمجة تطبيقات
WebSettingsCompat#setUserAgentMetadata
جديدة لإلغاء البيانات الوصفية لوكيل المستخدم في WebView، والتي تُستخدَم لتعبئة تلميحات برنامج وكيل المستخدم، كما أضفنا أيضًا واجهة برمجة تطبيقاتWebSettingsCompat#getUserAgentMetadata
جديدة أخرى للحصول على عمليات تجاهل وكيل المستخدم الحالية. نشجّع التطبيقات على استخدام واجهة برمجة التطبيقات الجديدة لضبط قيم الإلغاء الصحيحة بدلاً من الاعتماد على تغيير وكيل المستخدم. (I74500) - أضِف واجهة برمجة تطبيقات لإدخال JavaScript لتشغيلها أثناء تحميل الصفحة. تسمح واجهة برمجة التطبيقات
WebViewCompat.addDocumentStartJavascript
للتطبيقات بإدخال نصوص برمجية في WebView سيتم تشغيلها قبل تنفيذ أي نصوص برمجية للصفحات. تسمح واجهة برمجة التطبيقات للتطبيق بتحديد قائمة هدف من المصادر لتفعيل النص البرمجي، ما يضمن أنّه لا يتم تشغيله إلا على الصفحات المقصودة. على عكسWebView.evaluateJavascript
، ستسمح واجهة برمجة التطبيقات هذه بتنفيذ النصوص البرمجية في إطارات Iframe المضمّنة عند تحميلها. (Ide063)
الإصدار 1.8
الإصدار 1.8.0
6 أيلول (سبتمبر) 2023
تم طرح "androidx.webkit:webkit:1.8.0
". يتضمّن الإصدار 1.8.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.7.0
- إضافة دعم لتمرير
ArrayBuffer
عبرWebMessagePortCompat#postMessage
وJavaScriptReplyProxy#postMessage
وWebViewCompat#postWebMessage
، وتلقيArrayBuffer
من JavaScript في الإصدارWebMessagePortCompat
وWebMessageListener
، واستلامArrayBuffer
القابل للتحويل من JavaScript عبرWebMessagePortCompat
. (aosp/2596550، b/251152171)
الإصدار 1.8.0-rc01
9 آب (أغسطس) 2023
تم طرح الإصدار "androidx.webkit:webkit:1.8.0-rc01
" بدون أي تغييرات منذ 1.8.0-beta01
. يتضمّن الإصدار 1.8.0-rc01 هذه الالتزامات.
الإصدار 1.8.0-beta01
26 تموز (يوليو) 2023
تم طرح الإصدار "androidx.webkit:webkit:1.8.0-beta01
" بدون أي تغييرات منذ 1.8.0-alpha01
. يتضمّن الإصدار 1.8.0-beta01 هذه الالتزامات.
الإصدار 1.8.0-alpha01
7 حزيران (يونيو) 2023
تم طرح "androidx.webkit:webkit:1.8.0-alpha01
". يتضمّن الإصدار 1.8.0-alpha01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- راجع قسم المساهمات الخارجية.
المساهمة الخارجية
- إضافة دعم لتمرير
ArrayBuffer
عبرWebMessagePortCompat#postMessage
وJsReplyProxy#postMessage
وWebViewCompat#postWebMessage
، وتلقيArrayBuffer
من JavaScript عبرWebMessagePortCompat
وWebMessageListener
، وتلقيArrayBuffer
القابل للتحويل من JavaScript عبرWebMessagePortCompat
. يُرجى العلم أنّ واجهة برمجة التطبيقات هذه لن تتوفّر إلا في الإصدار 116 منWebView
. (Ie7567، b/251152171)
الإصدار 1.7
الإصدار 1.7.0
24 أيار (مايو) 2023
تم طرح "androidx.webkit:webkit:1.7.0
". يتضمّن الإصدار 1.7.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.6.0
- أتحنا استخدام ميزة سحب الصور في
WebView
. يمكنك السماح للمستخدمين بسحب الصور منWebView
من خلال إضافةDropDataContentProvider
الجديد إلى بيان تطبيقك كما هو موضّح في مستندات الصف. - أضفنا واجهة برمجة التطبيقات
ProcessGlobalConfig#setDirectoryBasePaths(Context,File,File)
التي يمكن استخدامها لإعداد الأدلة الأساسية التي سيتم استخدامها من قِبلWebView
للعملية الحالية. وكما هي الحال مع جميع الطرق علىProcessGlobalConfig
، يجب استدعاء هذه الطريقة قبل إنشاء مثيلWebView
الأول. وتمّت إضافة هذه الطريقة لتزويد نظام التشغيل Android بإمكانية تعديل إعداداتWebView
. بالنسبة إلى التطبيقات للأغراض العامة، لا يُنصح باستخدام هذه الطريقة.
الإصدار 1.7.0-rc01
10 أيار (مايو) 2023
تم طرح الإصدار "androidx.webkit:webkit:1.7.0-rc01
" بدون أي تغييرات منذ 1.7.0-beta01
. يتضمّن الإصدار 1.7.0-rc01 هذه الالتزامات.
الإصدار 1.7.0-beta01
5 نيسان (أبريل) 2023
تم طرح "androidx.webkit:webkit:1.7.0-beta01
". يتضمّن الإصدار 1.7.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم إجراء تغيير طفيف على علامة الميزة واسم الطريقة وجعل
setDirectoryBasePaths()
يقبل الملف بدلاً من سلسلة (Ib0d0a).
الإصدار 1.7.0-alpha03
8 آذار (مارس) 2023
تم طرح "androidx.webkit:webkit:1.7.0-alpha03
". يتضمّن الإصدار 1.7.0-alpha03 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- أضِف واجهة برمجة تطبيقات
ProcessGlobalConfig#setDirectoryBasePath(String, String)
التي يمكن استخدامها لإعداد الأدلة الأساسية التي سيستخدمهاWebView
للعملية الحالية. (Ibd1a1، b/250553687)
إصلاح الأخطاء
- إصلاح قاعدة
ProGuard
غير الصالحة التي تتسبب في أخطاء في الإصدار عند استخدامDexGuard
(Ia65c2، b/270034835)
الإصدار 1.7.0-alpha02
8 شباط (فبراير) 2023
تم طرح "androidx.webkit:webkit:1.7.0-alpha02
". يتضمّن الإصدار 1.7.0-alpha02 هذه الالتزامات.
إصلاح الأخطاء
- الأخطاء المتعلقة بتوثيق
DropDataContentProvider
الإصدار 1.7.0-alpha01
25 كانون الثاني (يناير) 2023
تم طرح "androidx.webkit:webkit:1.7.0-alpha01
". يتضمّن الإصدار 1.7.0-alpha01 هذه الالتزامات.
الميزات الجديدة
- نعمل على إتاحة ميزة سحب الصور في
WebView
. يمكنك السماح للمستخدمين بسحب الصور منWebView
من خلال إضافةDropDataContentProvider
الجديد إلى بيان تطبيقك. (05a1a6)
الإصدار 1.6
الإصدار 1.6.1
22 آذار (مارس) 2023
تم طرح "androidx.webkit:webkit:1.6.1
". يتضمّن الإصدار 1.6.1 هذه الالتزامات.
إصلاح الأخطاء
- إصلاح خطأ تحليل Proguard (Ia65c2)
الإصدار 1.6.0
25 كانون الثاني (يناير) 2023
تم طرح "androidx.webkit:webkit:1.6.0
". يتضمّن الإصدار 1.6.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.5.0
- تمت إضافة واجهة برمجة تطبيقات ProcessGlobalConfig جديدة للسماح للتطبيقات بتوفير إعدادات الضبط التي يجب ضبطها قبل تحميل WebView، مثل لاحقة دليل بيانات WebView. يجب ضبط الإعدادات وتطبيقها في أقرب وقت ممكن أثناء بدء تشغيل التطبيق، وذلك لضمان حدوث ذلك قبل أن تتمكّن أي سلسلة محادثات أخرى من استدعاء طريقة تُحمِّل
WebView
إلى العملية. - تمت إضافة واجهة برمجة تطبيقات CookieManagerCompat جديدة لتوسيع نطاق android.webkit.CookieManager باستخدام طريقة
getCookieInfo
جديدة لاسترداد جميع السمات لجميع ملفات تعريف الارتباط التي تم ضبطها على عنوان URL معيّن. تختلف هذه الواجهة عن واجهة برمجة التطبيقات getCookie API الحالية فيCookieManager
التي تعرض فقط سمات الاسم والقيمة الخاصة بملفات تعريف الارتباط. - يتضمن
WebSettingsCompat
طرقًا جديدة لتفعيل/إيقاف تأثيرEnterpriseAuthenticationAppLinkPolicy
إذا ضبطه المشرف فيWebView
، والحصول على الإعداد الحالي. وتتيح هذه الميزة لمكوّن WebView فتح تطبيق مصادقة بدلاً من فتح عنوان URL للمصادقة. لا تؤثر هذه الميزة على الأجهزة التي لا تتم إدارتها من خلال سياسة مؤسسة. - إضافة واجهة برمجة تطبيقات جديدة إلى
WebSettingsCompat
للسماح للتطبيقات بإرسال اسم حزمة التطبيقات صراحةً في عنوانX-Requested-With
إلى المصادر المُدرَجة في القائمة المسموح بها. يتم عادةً إرسال العنوان في كل طلب منWebView
.
الإصدار 1.6.0-rc01
11 كانون الثاني (يناير) 2023
تم طرح "androidx.webkit:webkit:1.6.0-rc01
". يتضمّن الإصدار 1.6.0-rc01 هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح
NullPointerException
فيWebViewFeature.isStartupFeatureSupported(Context, String)
عند التشغيل على حزمة تطوير البرامج (SDK) < L. (Ic7292)
الإصدار 1.6.0-beta01
7 كانون الأول (ديسمبر) 2022
تم طرح "androidx.webkit:webkit:1.6.0-beta01
". يتضمّن الإصدار 1.6.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تم تغيير
ProcessGlobalConfig
لاستخدام دالة إنشائية عادية وطريقة تطبيق ثابتة. يجب طلب طريقة التطبيق مرة واحدة فقط لكل عملية، في أقرب وقت ممكن، وسيتم عرضIllegalStateException
في حال طلبها أكثر من مرة. لم تعُد كائناتProcessGlobalConfig
تفرض أي قيود على عدد مرات استدعاء دالة الاستبعاد المتبادل. (I456c3)
الإصدار 1.6.0-alpha03
9 تشرين الثاني (نوفمبر) 2022
تم طرح "androidx.webkit:webkit:1.6.0-alpha03
". يتضمّن الإصدار 1.6.0-alpha03 هذه الالتزامات.
الميزات الجديدة
- أضِف فئة
ProcessGlobalConfig
ليتمكّن المستخدمون من ضبط الإعدادات العامة للعملية قبل تحميلWebView
. يحتويWebView
على بعض مَعلمات الإعداد الشاملة للعملية التي لا يمكن تغييرها بعد تحميلWebView
(مثل دليل بياناتWebView
). تسمح هذه الفئة للتطبيقات بضبط هذه المعلمات. يجب ضبط الإعدادات وتطبيقها في أقرب وقت ممكن أثناء بدء تشغيل التطبيق، وذلك لضمان حدوث ذلك قبل أن تتمكّن أي سلسلة محادثات أخرى من استدعاء طريقة تُحمِّلWebView
إلى العملية. (I7c0e0، b/250553687) - إضافة واجهة برمجة تطبيقات جديدة للسماح للتطبيقات بإرسال اسم حزمة التطبيق بشكل صريح في العنوان X-required-With إلى المصادر المدرَجة في القائمة المسموح بها يتم عادةً إرسال العنوان في كل طلب من
WebView
. (I0adfe، b/226552535)
تغييرات واجهة برمجة التطبيقات
- تتوفّر واجهة برمجة التطبيقات
WebSettingsCompat#setAlgorithmicDarkeningAllowed
على جميع إصدارات Android في الإصدار 105 والإصدارات الأحدث منWebView
. كانت الإصدارات السابقة منWebView
متوافقة فقط مع واجهة برمجة التطبيقات على Android Q والإصدارات الأحدث. ونتيجةً لذلك، لم تعُد واجهة برمجة التطبيقات هذه تحمل علامة@RequiresApi(Build.VERSION_CODES.Q)
. (I3ac1d)
الإصدار 1.6.0-alpha02
24 تشرين الأول (أكتوبر) 2022
تم طرح "androidx.webkit:webkit:1.6.0-alpha02
". يتضمّن الإصدار 1.6.0-alpha02 هذه الالتزامات.
الميزات الجديدة
- إضافة فئة
CookieManagerCompat
جديدة مع واجهة برمجة تطبيقاتgetCookieInfo
التي تسترجع جميع السمات لكل ملفات تعريف الارتباط التي تم ضبطها على عنوان URL معيّن. تختلف هذه الواجهة عن واجهة برمجة التطبيقاتgetCookie
الحالية فيCookieManager
التي تعرض فقط سمات الاسم والقيمة الخاصة بملفات تعريف الارتباط. (I07365، b/242161756)
الإصدار 1.6.0-alpha01
24 آب (أغسطس) 2022
تم طرح "androidx.webkit:webkit:1.6.0-alpha01
". يتضمّن الإصدار 1.6.0-alpha01 هذه الالتزامات.
الميزات الجديدة
- تمت إضافة واجهات برمجة التطبيقات في
WebSettingsCompat
لتفعيل/إيقاف تأثيرEnterpriseAuthenticationAppLinkPolicy
إذا حدّده المشرف فيWebView
. تتيح هذه الميزة لمتصفِّحWebView
فتح تطبيق مصادقة بدلاً من فتح عنوان URL للمصادقة. لا تؤثر هذه الميزة على الأجهزة التي لا تتم إدارتها من خلال سياسة مؤسسة.
الإصدار 1.5.0
الإصدار 1.5.0
24 آب (أغسطس) 2022
تم طرح "androidx.webkit:webkit:1.5.0
". يتضمّن الإصدار 1.5.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.4.0
- تحلّ واجهة برمجة التطبيقات
setAlgorithmicDarkeningAllowed
الجديدة علىWebSettingsCompat
محلّ واجهتَي برمجة التطبيقاتsetForceDark
وsetForceDarkStrategy
القديمتَين. على التطبيقات التي تستهدف الإصدار 33 من حزمة SDK والإصدارات الأحدث استخدام واجهة برمجة التطبيقات الجديدة، لأنّ واجهة برمجة التطبيقات القديمة لن يكون لها أي تأثير على هذه التطبيقات بعد الآن. - يمكن الآن من خلال
ProxyCofig.Builder
ضبط قائمة عناوين URL المسموح بها لاستخدام الخادم الوكيل الذي تم إعداده، وذلك من خلال ضبطsetReverseBypassEnabled
علىtrue
. عندما يكون هذا ساري المفعول، ستتجاوز جميع عناوين URL الأخرى الخادم الوكيل الذي تم إعداده.
الإصدار 1.5.0-rc01
10 آب (أغسطس) 2022
تم طرح الإصدار "androidx.webkit:webkit:1.5.0-rc01
" بدون أي تغييرات منذ 1.5.0-beta01
. يحتوي الإصدار 1.5.0-rc01 على هذه الالتزامات.
الإصدار 1.5.0-beta01
29 حزيران (يونيو) 2022
تم طرح "androidx.webkit:webkit:1.5.0-beta01
". يتضمّن الإصدار 1.5.0-beta01 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة تعليقات توضيحية الآن إلى واجهات برمجة التطبيقات ذات الصلة بـ Alogrithimic Darkening (تتطلب مستوى واجهة برمجة التطبيقات Q). لن يكون لواجهة برمجة التطبيقات أي تأثير على مستويات واجهة برمجة التطبيقات < Q، لأنّ "المظهر الداكن" ليس خيارًا متاحًا على هذه الأجهزة. (I0905e)
الإصدار 1.5.0-alpha01
18 أيار (مايو) 2022
تم طرح "androidx.webkit:webkit:1.5.0-alpha01
". يحتوي الإصدار 1.5.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- أضِف طريقة
getVariationsHeader()
جديدة فيWebViewCompat
للحصول على قيمة عنوان X-Client-Data التي ترسلهاWebView
. وستكون القيمة المعروضة نموذجًا أوليًا بترميز ClientVariations مع ترميز base64. - إضافة واجهات برمجة التطبيقات في
WebSettingsCompat
للسماح/عدم السماح بتظليل خوارزمي للتطبيقات التي تحتوي على targetSdk >= 33 (I29597)
تغييرات واجهة برمجة التطبيقات
- أضِف طريقة جديدة في
ProxyCofig.Builder
لضبط الاستبعاد العكسي. ويعني ضبط التجاوز العكسي على "صحيح" أنّ عناوين URL المدرَجة في قائمة التجاوز فقط ستستخدم إعدادات الخادم الوكيل. (I9eaa2، b/168728599)
إصلاح الأخطاء
- تم إصلاح خطأ إملائي في مستندات المظهر الداكن. (I36ebf، b/194343633)
- تم إصلاح خطأ يتسبّب في اعتماد
WebViewAssetLoader.Builder
طريقة على الطلب عن غير قصد. (If420d، b/182196765)
الإصدار 1.4.0
الإصدار 1.4.0
16 كانون الأول (ديسمبر) 2020
تم طرح "androidx.webkit:webkit:1.4.0
". يتضمّن الإصدار 1.4.0 هذه الالتزامات.
التغييرات الرئيسية منذ الإصدار 1.3.0
- تمت إضافة واجهة برمجة تطبيقات
setSafeBrowsingAllowlist()
جديدة لتحل محلsetSafeBrowsingWhitelist()
. يساعد هذا الإجراء التطبيقات في تعديل الرموز البرمجية لتجنُّب المصطلحات غير الشاملة، مع إتاحة النطاق نفسه من حِزم تطوير البرامج (SDK) لنظام التشغيل Android وإصدارات WebView المتوافقة مع واجهة برمجة التطبيقات المتوقّفة نهائيًا. - تم إصلاح خطأ في setProxyOverride تسبّب في عدم تطبيق القواعد الاحتياطية بشكلٍ صحيح.
الإصدار 1.4.0-rc02
2 كانون الأول (ديسمبر) 2020
تم طرح "androidx.webkit:webkit:1.4.0-rc02
". يحتوي الإصدار 1.4.0-rc02 على هذه الالتزامات.
إصلاح الأخطاء
- إصلاح القواعد الاحتياطية التي لا يتم تطبيقها بشكل صحيح عند استخدام setProxyOverride
الإصدار 1.4.0-rc01
11 تشرين الثاني (نوفمبر) 2020
تم طرح الإصدار "androidx.webkit:webkit:1.4.0-rc01
" بدون أي تغييرات منذ 1.4.0-beta01
. يحتوي الإصدار 1.4.0-rc01 على هذه الالتزامات.
الإصدار 1.4.0-beta01
14 تشرين الأول (أكتوبر) 2020
تم طرح الإصدار "androidx.webkit:webkit:1.4.0-beta01
" بدون أي تغييرات منذ 1.4.0-alpha01
. يحتوي الإصدار 1.4.0 -beta01 على هذه الالتزامات.
الإصدار 1.4.0-alpha01
16 أيلول (سبتمبر) 2020
تم طرح "androidx.webkit:webkit:1.4.0-alpha01
". يحتوي الإصدار 1.4.0-alpha01 على هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تمت إضافة واجهة برمجة تطبيقات
WebViewCompat#setSafeBrowsingAllowlist()
جديدة لاستبدالsetSafeBrowsingWhitelist()
يساعد ذلك التطبيقات في تعديل الرموز البرمجية الخاصة بها لتجنُّب المصطلحات غير الشاملة، مع إتاحة استخدام النطاق نفسه من حِزم تطوير البرامج (SDK) لنظام التشغيل Android وإصدارات WebView المتوافقة مع واجهة برمجة التطبيقات المتوقّفة نهائيًا. (I8d65d)
الإصدار 1.3.0
الإصدار 1.3.0
19 آب (أغسطس) 2020
تم طرح "androidx.webkit:webkit:1.3.0
". يتضمّن الإصدار 1.3.0 هذه الالتزامات.
التغييرات الرئيسية منذ الإصدار 1.2.0
- توفّر واجهة برمجة تطبيقات ForceDarkStrategy مزيد من التحكّم لتعتيم مكوّنات WebView (تعتيم محتوى الويب أو CSS بدلاً من التعتيم التلقائي).
- يوفّر WebMessageListener وواجهات برمجة التطبيقات المرتبطة به آلية بسيطة وآمنة لإنشاء اتصال بين محتوى الويب وتطبيق أداة التضمين في WebView.
isMultiProcessEnabled
API للتحقّق مما إذا كان WebView يعمل في عمليات متعدّدة يمكن حدوث ذلك بدءًا من Android O، ويعني ذلك عرض محتوى الويب في عملية عارض في وضع الحماية بشكل منفصل عن عملية التطبيق. قد تتم مشاركة العارض الذي يتضمّن وضع الحماية هذا مع مكوّنات WebView أخرى في التطبيق نفسه، ولكن لا تتم مشاركته مع عمليات معالجة التطبيقات الأخرى.
الإصدار 1.3.0-rc02
5 آب (أغسطس) 2020
تم طرح "androidx.webkit:webkit:1.3.0-rc02
". يتضمّن الإصدار 1.3.0-rc02 هذه الالتزامات.
إصلاح الأخطاء
- يؤدي ذلك إلى إصلاح مشكلة التوافق حيث قد يتعطّل
WebMessageListener
أحيانًا أثناء التطوير المحلي إذا تم بدء تشغيل تطبيقك بعد تشغيل التطبيق الفوري في "استوديو Android".
الإصدار 1.3.0-rc01
24 حزيران (يونيو) 2020
تم طرح الإصدار "androidx.webkit:webkit:1.3.0-rc01
" بدون أي تغييرات منذ 1.3.0-beta01
. يتضمّن الإصدار 1.3.0-rc01 هذه الالتزامات.
الإصدار 1.3.0-beta01
10 حزيران (يونيو) 2020
تم طرح "androidx.webkit:webkit:1.3.0-beta01
". يتضمّن الإصدار 1.3.0-beta01 هذه الالتزامات.
الميزات الجديدة
- واجهة برمجة تطبيقات
ForceDarkStrategy
للتحكّم في التعتيم التلقائي لمكوّن WebView (تظليل محتوى الويب أو CSS بدلاً من التعتيم التلقائي) - توفّر واجهات برمجة التطبيقات
WebMessageListener
آلية بسيطة وآمنة لإنشاء اتصال بين محتوى الويب وتطبيق أداة التضمين في WebView. MultiProcessEnabled
API للتحقّق مما إذا كان WebView يعمل في وضع العمليات المتعدّدة
الإصدار 1.3.0-alpha03
27 أيار (مايو) 2020
تم طرح "androidx.webkit:webkit:1.3.0-alpha03
". يتضمّن الإصدار 1.3.0-alpha03 هذه الالتزامات.
تغييرات واجهة برمجة التطبيقات
- تتلقّى الآن الطريقة
addWebMessageListener
الآنSet<String>
من قواعد المصدر المسموح بها (التي كانت سابقًاList<String>
).
الإصدار 1.3.0-alpha02
29 نيسان (أبريل) 2020
تم طرح "androidx.webkit:webkit:1.3.0-alpha02
". يحتوي الإصدار 1.3.0-alpha02 على هذه الالتزامات.
الميزات الجديدة
- واجهة برمجة التطبيقات MultiProcessEnabled للتحقق مما إذا كان مكوّن WebView يعمل في وضع العمليات المتعدّدة.
تغييرات واجهة برمجة التطبيقات
- جميع ثوابت الاستراتيجية الداكنة تبدأ الآن بـ
DARK_STRATEGY
.
الإصدار 1.3.0-alpha01
نيسان (أبريل) 2020
تم طرح "androidx.webkit:webkit:1.3.0-alpha01
". يحتوي الإصدار 1.3.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- واجهة برمجة تطبيقات
ForceDarkStrategy
للتحكّم في درجة التعتيمWebView
(تعتيم محتوى الويب أو CSS بدلاً من التعتيم التلقائي) - توفّر واجهات برمجة التطبيقات
WebMessageListener
آلية بسيطة وآمنة لإنشاء اتصال بين محتوى الويب وتطبيق أداة التضمين في WebView.
الإصدار 1.2.0
الإصدار 1.2.0
4 آذار (مارس) 2020
تم طرح "androidx.webkit:webkit:1.2.0
". يتضمّن الإصدار 1.2.0 هذه الالتزامات.
التغييرات الرئيسية منذ 1.1.0
- تمت إضافة واجهة برمجة تطبيقات ForceDark API للتحكّم في ما إذا كان يجب عرض مكوّنات WebView في الوضع الداكن.
الإصدار 1.2.0-rc01
19 شباط (فبراير) 2020
تم طرح الإصدار "androidx.webkit:webkit:1.2.0-rc01
" بدون أي تغييرات منذ 1.2.0-beta01
. يحتوي الإصدار 1.2.0-rc01 على هذه الالتزامات.
الإصدار 1.2.0-beta01
5 شباط (فبراير) 2020
تم طرح الإصدار "androidx.webkit:webkit:1.2.0-beta01
" بدون أي تغييرات منذ 1.2.0-alpha01
. يحتوي الإصدار 1.2.0 -beta01 على هذه الالتزامات.
الإصدار 1.2.0-alpha01
18 كانون الأول (ديسمبر) 2019
تم طرح "androidx.webkit:webkit:1.2.0-alpha01
". يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- ForceDark API للتحكّم في ما إذا كان يجب عرض مكوّنات WebView في الوضع الداكن.
الإصدار 1.1.0
الإصدار 1.1.0
7 تشرين الثاني (نوفمبر) 2019
تم طرح "androidx.webkit:webkit:1.1.0
". يتضمّن الإصدار 1.1.0 هذه الالتزامات.
التغييرات المهمة منذ الإصدار 1.0.0
- واجهات برمجة تطبيقات Getter لتتكامل مع setWebViewClient() وsetWebChromeClient().
- ProxyController API لضبط خادم وكيل لطلب الشبكة لمكوّنات WebView لأحد التطبيقات.
- واجهة WebViewAssetLoader API: تساعد هذه الواجهة في تبسيط عملية تحميل أصول حزمة APK ومواردها وملفاتها من دليل بيانات التطبيق عن طريق اعتراض الطلب. يتيح هذا الإجراء الوصول إلى الويب والموارد المحلية بدون إيقاف سياسة CORS.
- واجهة برمجة التطبيقات TracingController API لجمع معلومات تتبُّع WebView لأغراض تصحيح الأخطاء.
- واجهات برمجة التطبيقات RenderProcess لإدارة خدمات عارض WebView، ولرصد الحالات التي يتسبب فيها المحتوى السيئ الأداء في عدم استجابة أجهزة عرض WebView.
- تم تعديل واجهات برمجة التطبيقات الحالية لتشمل إمكانية القيم الفارغة (
@NonNull
، و@Nullable
) والتعليقات التوضيحية لسلاسل المحادثات (@UiThread
،@WorkerThread
).
الإصدار 1.1.0-rc01
9 تشرين الأول (أكتوبر) 2019
تم طرح "androidx.webkit:webkit:1.1.0-rc01
". يحتوي الإصدار 1.1.0-rc01 على هذه الالتزامات.
إصلاح الأخطاء
- تم إصلاح المشكلة المتمثلة في تعطُّل
setWebViewRenderProcessClient()
في حال ضبط برنامج فارغ.
الإصدار 1.1.0-beta01
5 أيلول (سبتمبر) 2019
تم طرح "androidx.webkit:webkit:1.1.0-beta01
". يمكنك الاطّلاع هنا على العمولات التي تم تضمينها في هذا الإصدار.
الميزات الجديدة
- ميزة
InternalStoragePathHandler
جديدة فيWebViewAssetLoader
لتحميل الملفات من دليل بيانات التطبيق.
التغييرات في واجهة برمجة التطبيقات
- تعرض
ProxyConfig#getProxyRules()
الآن قائمة غير قابلة للتعديل من مثيلاتProxyRule
، وهي فئة جديدة تتضمن فلتر مخطط وعنوان URL للخادم الوكيل المقابل له.
إصلاح الأخطاء
- يتم ضبط
WebViewAssetLoader
تلقائيًا على نوع MIME "نص/عادي" (بدلاً من استخدام قيمة فارغة) عندما يتعذّر على التطبيق تخمين نوع MIME من مسار الملف. - لم يعد
WebViewAssetLoader
يطرحNullPointerException
عند تحميل الملفات التي تحتوي على رموز خاصة في أسماء المسارات.
الإصدار 1.1.0-alpha02
7 آب (أغسطس) 2019
تم طرح "androidx.webkit:webkit:1.1.0-alpha02
". يمكنك الاطّلاع هنا على العمولات التي تم تضمينها في هذا الإصدار.
الميزات الجديدة
- يعرض
WebViewAssetLoader
واجهةPathHandler
للسماح للتطبيقات بإنشاء وظيفة مخصّصة لمعالجة المسار.
التغييرات في واجهة برمجة التطبيقات
- لقد أصبح
WebViewAssetLoader
الآن صفًا نهائيًا، لأنه ليس من المفترض أن يتم تصنيفه ضمن فئة فرعية. - أصبحت عملية تنفيذ
WebViewAssetLoader#PathHandler
الآن علنية ونهائية. - تم إجراء تغييرات طفيفة على أسماء طرق ProxyConfig.
ProxyController
: تمت إضافة طريقتين جديدتينaddDirect()
وaddDirect(String)
للاتصال بالخوادم مباشرةً، وتمت إزالة سلسلة DIRECT String.- تم تعديل واجهات برمجة التطبيقات الحالية لتشمل إمكانية القيم الفارغة (
@NonNull
، و@Nullable
) والتعليقات التوضيحية لسلاسل المحادثات (@UiThread
،@WorkerThread
).
الإصدار 1.1.0-alpha01
7 أيار (مايو) 2019
تم طرح "androidx.webkit:webkit:1.1.0-alpha01
". يمكنك الاطّلاع هنا على العمولات التي تم تضمينها في هذا الإصدار.
الميزات الجديدة
- واجهات برمجة تطبيقات Getter لتتكامل مع
setWebViewClient()
وsetWebChromeClient()
- ProxyController API لضبط خادم وكيل لطلب الشبكة لمكوّنات WebView لأحد التطبيقات.
- تسهِّل واجهة برمجة التطبيقات AssetLoader API عملية تحميل الموارد ومواد عرض حِزم APK من خلال اعتراض الطلب، ما يتيح الوصول إلى موارد الويب بدون إيقاف سياسة CORS.
- واجهة برمجة التطبيقات TracingController API لجمع معلومات تتبُّع WebView لأغراض تصحيح الأخطاء.
- واجهات برمجة التطبيقات RenderProcess لإدارة خدمات عارض WebView، ولرصد الحالات التي يتسبب فيها المحتوى السيئ الأداء في عدم استجابة أجهزة عرض WebView.
إصلاح الأخطاء
- إصلاحات طفيفة في تنسيق المستندات لواجهات برمجة التطبيقات الحالية.