تصحيح أخطاء تطبيقات الويب

يمكنك تصحيح أخطاء 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.

لإجراء ذلك، اتّبِع الخطوات التالية:

  1. ثبِّت إحدى WebView قنوات الإصدارات التجريبية(الإصدار التجريبي أو إصدارات المطوّرين أو إصدار Canary){:.external}.

  2. بدِّل قناة WebView على جهاز الاختبار إلى قناة الإصدار التجريبي المثبَّتة.

  3. انقر على مشغّل أدوات مطوري البرامج في WebView.

    رمز مشغّل "أدوات مطوّري البرامج في WebView"
    الشكل 1. رمز WebView DevTools للتطبيق المثبَّت على جهاز
  4. من "أدوات مطوّري البرامج"، انقر على العنصر علامات وابحث عن أي ميزات تجريبية تريد تفعيلها أو إيقافها. وينطبق التغيير على جميع مثيلات WebView على الجهاز.

  5. أوقِف تطبيقك وأعِد تشغيله لبدء الاختبار باستخدام الميزات الجديدة.

لمزيد من المعلومات حول تفعيل العلامات وإيقافها، راجِع WebView مستندات "أدوات مطوّري البرامج".