Saya sedang mengerjakan proyek yang melibatkan Raphaeljs. Ternyata, itu tidak berfungsi di Android. Ini tidak pada iPhone.
Bagaimana sih saya tentang men-debug sesuatu di browser Android? Ini WebKit, jadi jika saya tahu versinya, apakah akan debug pada versi lengkap dari WebKit menghasilkan hasil yang sama?
Jawaban:
Pembaruan: Debugging Jarak Jauh
Sebelumnya, logging konsol adalah pilihan terbaik untuk debugging JavaScript di Android. Saat ini dengan debugging jarak jauh Chrome untuk Android, kami dapat memanfaatkan semua kebaikan Alat Pengembang Chrome untuk Desktop di Android. Lihat https://developers.google.com/chrome-developer-tools/docs/remote-debugging untuk informasi lebih lanjut.
Perbarui: Konsol JavaScript
Anda juga dapat menavigasi ke: debug di bilah URL untuk mengaktifkan menu debug dan konsol kesalahan JavaScript dengan perangkat Android terbaru. Anda akan melihat SHOW JAVASCRIPT CONSOLE di bagian atas Browser.
Saat ini di Android 4.0.3 (Ice Cream Sandwich), logcat keluar ke saluran browser. Jadi Anda bisa memfilter menggunakan
adb logcat browser:* *:S
.Jawaban Asli
Anda dapat menggunakan
console
objek JavaScript bawaan untuk mencetak pesan log yang dapat Anda tinjauadb logcat
.Menghasilkan output ini:
Menentukan versi WebKit
Jika Anda mengetik
javascript:alert(navigator.userAgent)
di bilah lokasi Anda akan melihat versi WebKit yang terdaftar misalnyaDi Chrome:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Chrome/4.0.221.6 Safari/532.2
Di Android Emulator
Mozilla/5.0 (Linux; U; Android 1.6; en-us; sdk Build/DRC76) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
NB
Versi WebKit yang bukan bagian dari rilis Safari memiliki + setelah nomor versi, dan nomor versi mereka umumnya lebih tinggi daripada versi WebKit yang dirilis terbaru. Jadi, misalnya, 528+ adalah versi tidak resmi dari WebKit yang lebih baru dari versi 525.x yang dikirimkan sebagai bagian dari Safari 3.1.2.
sumber
Mencoba:
saat berada di halaman itu, di bilah alamat browser Android stok, ketik:
(Perhatikan tidak ada yang terjadi, tetapi beberapa opsi baru telah diaktifkan.)
Bekerja pada perangkat yang saya coba. Baca lebih lanjut tentang peramban Android tentang: debug, apa yang dilakukan pengaturan itu?
Sunting: Yang juga membantu mengambil lebih banyak informasi seperti nomor baris adalah menambahkan kode ini ke skrip Anda:
sumber
about:debug
dari dalam tab yang sama dengan halaman Anda saat ini terbuka. Alih-alih menavigasi, itu akan menampilkan "SHOW JAVASCRIPT CONSOLE" di bagian atas. Jika Anda mencoba mengaksesabout:debug
dari tab baru, itu tidak akan berfungsi.about:debug
benar-benar ke depanchrome://debug
yang mengatakan "tidak dapat ditemukan" tetapi menunjukkanDebug
opsi dalam pengaturan. Beberapa opsi tidak berlaku hingga tab baru dibuka sesudahnya.The http://jsconsole.com ( http://jsconsole.com/remote-debugging.html ) menyediakan cara yang bagus yang dapat digunakan untuk mengakses konten dari Anda halaman web.
sumber
Saya menggunakan Weinre , bagian dari Apache Cordova .
Dengan Weinre, saya mendapatkan konsol debug Google Chrome di browser desktop saya, dan dapat menghubungkan Android ke konsol debug itu, dan men-debug HTML dan CSS. Saya dapat menjalankan perintah Javascript di konsol, dan itu mempengaruhi halaman Web di browser Android. Pesan log dari Android muncul di konsol debug desktop.
Namun saya pikir itu tidak mungkin untuk melihat atau melangkah melalui kode Javascript yang sebenarnya. Jadi saya menggabungkan Weinre dengan pesan log.
(Saya tidak tahu banyak tentang JConsole tetapi bagi saya sepertinya pemeriksaan HTML dan CSS tidak dimungkinkan dengan JConsole, hanya perintah Javascript dan pencatatan (?).)
sumber
Lihatlah jsHybugger . Ini akan memungkinkan Anda untuk men-debug kode js Anda dari jarak jauh untuk:
Cara kerjanya (lebih detail dan alternatif di situs proyek, inilah yang saya temukan sebagai cara terbaik).
Sekali lagi, dengan Chrome di Android, gunakan ekstensi ADB tanpa jsHybugger. Saya pikir ini sudah dijelaskan dalam jawaban yang diterima untuk pertanyaan ini.
sumber
FYI, alasan mengapa RaphaelJS tidak berfungsi di android adalah bahwa webkit android (tidak seperti iPhone webkit) tidak mendukung SVG saat ini. Google baru-baru ini sampai pada kesimpulan bahwa SVG mendukung android adalah ide yang baik, sehingga tidak akan tersedia untuk beberapa waktu.
sumber
Debugging jarak jauh Chrome penuh dari browser asli Android pada Galaxy S6 di Android 5.1.1:
Perangkat Galaxy S5 tampil di Chrome tetapi tab hanya muncul setelah Anda memulai ulang. Setelah memulai kembali dan mencoba melampirkan, peramban seluler mogok.
sumber
Raphael tidak didukung di browser Android pra 3.0, itulah masalahnya. Mereka tidak memiliki dukungan untuk grafis SVG. Itu memang memiliki dukungan untuk kanvas. Jika Anda tidak perlu menghidupkannya, Anda dapat membuat grafik dengan canvg:
http://code.google.com/p/canvg/
Begitulah cara kami mengatasi masalah ini untuk rendering ikon SVG di browser Android default.
sumber
Halaman
about:debug
(atauchrome:\\debug
keduanya mengatakan tidak dapat ditemukan, tetapi aktifkan menu Debug di pengaturan) ketika dicoba di Chrome atau Opera di Android KitKat 4.4.2 di Tab SamsungJika Anda memiliki izin ROOT di perangkat Anda, Anda dapat melihat pesan konsol langsung di perangkat. Gunakan aplikasi seperti CatLog untuk melihat output log - https://play.google.com/store/apps/details?id=com.nolanlawson.logcat&hl=en Ini akan memungkinkan Anda melihat semua aktivitas logcat.
Di Android KitKat / 4.4.2, konsol browser di-output ke saluran Chromium. Anda dapat memfilter berdasarkan "Chromium" untuk mendapatkan semua aktivitas browser (termasuk aktivitas internal browser), atau cukup filter dengan "Console" untuk hanya melihat log konsol Browser.
sumber
Masukkan ke dalam baris alamat
chrome://about
. Anda akan melihat tautan ke semua halaman pengembang yang memungkinkan.sumber
Anda dapat mencoba YConsole a js embedded console. Ini ringan dan mudah digunakan.
Cara Penggunaan :
sumber
Saat menjalankan emulator Android, buka browser Google Chrome Anda, dan di 'bidang alamat', masukkan:
Anda akan melihat daftar target jarak jauh Anda. Temukan target Anda, dan klik tautan 'periksa'.
sumber
Chrome memiliki fitur luar biasa yang hanya mengambil konten Chrome Android aktual (termasuk inspeksi dll.) Ke layar PC ...
adb devices
untuk memicu dialog "izinkan komunikasi dengan ..." pada perangkat seluler,chrome://inspect/#devices
pada PC.Ada juga manual terperinci di internet: https://www.till.net/technologie/html-javascript/remote-web-debugging-unter-android-und-chrome
(menemukan bahwa setelah
adb logcat
tidak menunjukkan apa pun dari browser)sumber
Solusi saya adalah (untuk browser stok):
sumber
Studio Android menyediakan semua yang Anda butuhkan untuk melihat console.log dan lainnya. Di logcat cukup filter ke "/ Web Console" dan Anda akan melihat log js Anda ...
Jika Anda mendapatkan masalah apa pun, Anda dapat menambahkan plugin ini: https://github.com/apache/cordova-plugin-console
sumber
Jika Anda mencari opsi yang tidak jauh:
Pada rilis Jellybean sebelumnya dan yang tidak di-rooting, penampil logcat dapat digunakan jika android.permission.READL_LOGS diberikan melalui adb sekali.
Di firefox, ada addon konsol yang membaca dan menunjukkan semua log aplikasi dan ada juga pembakar lite .
sumber
Anda dapat mencoba "javascript-compiler-deva" dari npm library dengan menjalankan "npm instal javascript-compiler-deva" perintah dan kemudian menjalankan compiler.is menggunakan "node compiler.js".
Ini menciptakan server di port 8888. Anda kemudian dapat menekan " http: // localhost: 8888 " dan masukkan kode JavaScript Anda dan dapat melihat hasil dari setiap kode JavaScript termasuk "console.log" di browser ponsel itu sendiri.
Itu juga di-host di " https://javascript-compiler-deva.herokuapp.com/ "
sumber
Opsi debugging / about: config ... lokal sepertinya tidak berfungsi lagi di browser 2020 + chrome / ff / ...
Browser lain dengan konsol js non-jarak jauh adalah DevBrowser
atau WebInspector (pemilih file tidak berfungsi)
sumber