اشکال زدایی برنامه های وب

می توانید جاوا اسکریپت خود را با استفاده از API های جاوا اسکریپت console اشکال زدایی کنید و پیام های خروجی را در Logcat مشاهده کنید. اگر با اشکال زدایی صفحات وب با Firebug یا Web Inspector آشنا هستید، احتمالاً با استفاده از console (مانند console.log() ) آشنا هستید. چارچوب WebKit Android از اکثر APIهای یکسان پشتیبانی می کند، بنابراین می توانید هنگام اشکال زدایی در WebView ، گزارش ها را از صفحه وب خود دریافت کنید. این بخش نحوه استفاده از APIهای کنسول را برای اشکال زدایی توضیح می دهد.

از API های کنسول در WebView استفاده کنید

APIهای کنسول هنگام اشکال زدایی در WebView نیز پشتیبانی می شوند. باید یک WebChromeClient ارائه کنید که متد onConsoleMessage() را برای نمایش پیام‌های کنسول در Logcat پیاده‌سازی کند. سپس، WebChromeClient با setWebChromeClient() به WebView خود اعمال کنید. برای اطلاعات بیشتر، به مستندات Webview مراجعه کنید.

مثال زیر نحوه استفاده از API های کنسول در WebView را نشان می دهد:

کاتلین

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
    }
}

جاوا

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 (بتا، توسعه دهنده، یا قناری){: .external} را نصب کنید .

  2. کانال WebView را در دستگاه آزمایشی خود به کانال پیش از انتشار نصب شده تغییر دهید .

  3. روی راه‌انداز WebView DevTools کلیک کنید:


    شکل 1. نماد WebView DevTools برای برنامه نصب شده روی دستگاه.

  4. از DevTools، روی Flags کلیک کنید و هر ویژگی آزمایشی را که می‌خواهید فعال یا غیرفعال کنید، جستجو کنید. این تغییر برای تمام نمونه های WebView در دستگاه اعمال می شود.

  5. برای شروع آزمایش با ویژگی‌های جدید، برنامه خود را متوقف و راه‌اندازی مجدد کنید.

برای اطلاعات بیشتر در مورد تغییر پرچم، به اسناد WebView DevTools مراجعه کنید.