يمكنك تصحيح أخطاء JavaScript باستخدام واجهات برمجة تطبيقات console
JavaScript وعرض رسائل الإخراج في Logcat. إذا كنت معتادًا على تصحيح أخطاء صفحات الويب باستخدام Firebug أو Web Inspector، من المحتمل أنّك معتاد على استخدام console
(مثل console.log()
). يتيح إطار عمل WebKit في Android معظم واجهات برمجة التطبيقات نفسها، لذا يمكنك تلقّي السجلات من صفحة الويب عند تصحيح الأخطاء في WebView
. يوضّح هذا القسم كيفية استخدام واجهات برمجة التطبيقات الخاصة بوحدة التحكّم لتحديد المشاكل وحلّها.
استخدام واجهات برمجة التطبيقات الخاصة بوحدة التحكّم في WebView
تتوفّر أيضًا واجهات برمجة التطبيقات الخاصة بوحدة التحكّم عند تصحيح الأخطاء في WebView
. يجب توفير WebChromeClient
ينفّذ الطريقة onConsoleMessage()
لكي تظهر رسائل وحدة التحكّم في Logcat.
بعد ذلك، طبِّق WebChromeClient
على WebView
باستخدام setWebChromeClient()
. لمزيد من المعلومات، يُرجى الاطّلاع على WebView
المستندات.
يوضّح المثال التالي كيفية استخدام واجهات برمجة التطبيقات الخاصة بوحدة التحكّم في WebView
:
Kotlin
val myWebView: WebView = findViewById(R.id.webview)
myWebView.webChromeClient = object : WebChromeClient() {
override fun onConsoleMessage(message: ConsoleMessage): Boolean {
Log.d("MyApplication", "${message.message()} -- From line " +
"${message.lineNumber()} of ${message.sourceId()}")
return true
}
}
Java
WebView myWebView = findViewById(R.id.webview);
myWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d("MyApplication", consoleMessage.message() + " -- From line " +
consoleMessage.lineNumber() + " of " + consoleMessage.sourceId());
return true;
}
});
يتضمّن ConsoleMessage
أيضًا عنصر MessageLevel
للإشارة إلى نوع رسالة وحدة التحكّم التي يتم تسليمها. يمكنك طلب مستوى الرسالة باستخدام messageLevel()
لتحديد مدى خطورة الرسالة، ثم استخدام طريقة Log
المناسبة أو اتّخاذ إجراءات أخرى مناسبة.
سواء كنت تستخدم
onConsoleMessage(String, int, String)
أو
onConsoleMessage(ConsoleMessage)
، عندما تنفّذ طريقة وحدة تحكّم في صفحة الويب، يستدعي نظام التشغيل Android طريقة onConsoleMessage()
المناسبة حتى تتمكّن من الإبلاغ عن الخطأ. على سبيل المثال، باستخدام الرمز النموذجي، ستتم طباعة رسالة Logcat
بالشكل التالي:
Hello World -- From line 82 of http://www.example.com/hello.html
في ما يلي مراجع إضافية ذات صلة بتصحيح الأخطاء:
اختبار ميزات الويب التجريبية
على غرار صفحة chrome://flags
في Google Chrome، يمكنك أيضًا اختبار ميزات الويب التجريبية في WebView
.
لإجراء ذلك، اتّبِع الخطوات التالية:
ثبِّت إحدى
WebView
قنوات الإصدارات التجريبية(الإصدار التجريبي أو إصدارات المطوّرين أو إصدار Canary){:.external}.بدِّل قناة
WebView
على جهاز الاختبار إلى قناة الإصدار التجريبي المثبَّتة.انقر على مشغّل أدوات مطوري البرامج في WebView.
الشكل 1. رمز WebView DevTools للتطبيق المثبَّت على جهاز من "أدوات مطوّري البرامج"، انقر على العنصر علامات وابحث عن أي ميزات تجريبية تريد تفعيلها أو إيقافها. وينطبق التغيير على جميع مثيلات
WebView
على الجهاز.أوقِف تطبيقك وأعِد تشغيله لبدء الاختبار باستخدام الميزات الجديدة.
لمزيد من المعلومات حول تفعيل العلامات وإيقافها، راجِع WebView
مستندات "أدوات مطوّري البرامج".