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

ويمكنك تصحيح أخطاء JavaScript باستخدام واجهات برمجة تطبيقات JavaScript console وعرض رسائل الإخراج في 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 التجريبية (الإصدار التجريبي أو قناة dev أو إصدار Canary){: .external}.

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

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


    الشكل 1. رمز "أدوات مطوري البرامج في WebView" للتطبيق المثبّت على جهاز

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

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

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