Penulis: Alan D Moore (http://www.alandmoore.com, e-mail me_at_alandmoore_dot_com)
Kontributor:
AdmBrowser adalah browser khusus untuk digunakan pada kios web. Ini didasarkan pada pyqt5 dan qtwebengine (kromium/blink), dan dirancang untuk membuat penguncian menjadi sangat sederhana dan tidak menyakitkan.
Awalnya dikandung untuk digunakan dalam terminal katalog perpustakaan, ketika menjadi jelas bahwa browser dengan daftar fitur yang terus tumbuh seperti Firefox dan Chrome terlalu banyak pekerjaan untuk dikunci dengan benar dan sepenuhnya. Itu juga dirancang agar mudah dikonfigurasi menggunakan file teks sederhana yang dapat diedit tangan di terminal di atas SSH di WAN yang lambat, jadi tidak ada database, XML, atau biner gila di sini.
AdmBrowser adalah garpu wcgbrowser, dengan perbedaan utama ini:
Banyak fitur yang ada di WCGBrowser rusak atau tidak tersedia hanya karena QTWebengine melakukan hal -hal yang berbeda dari QTWebKit.
Ini harus bekerja pada platform apa pun, tetapi hanya diuji di Arch Linux, Debian, dan Ubuntu.
File advbrowser.yaml yang disertakan menunjukkan konfigurasi contoh yang terdokumentasi. Untuk menggunakannya, salin ke /etc/admbrowser.yaml, ~/.admbrowser.yaml, atau tentukan dengan sakelar -c (--config-file). Anda dapat membuat advbrowser.py dapat dieksekusi, atau meluncurkannya menggunakan python, seperti itu:
python advbrowser.py
Paling tidak, Anda perlu menentukan start_url menggunakan file konfigurasi atau sakelar -l, atau browser tidak banyak digunakan. Konfigurasi lanjutan mungkin paling baik dilakukan di file konfigurasi, tetapi banyak fitur dasar dapat diaktifkan atau dinonaktifkan di baris perintah menggunakan sakelar ini:
| Mengalihkan | Keterangan |
|---|---|
| --debug_log | Kirim output debugging ke file yang ditentukan |
| --ukuran | Atur ukuran jendela awal sebagai "<bulth> x <tight>" (mis. "800x600"), "maks" untuk memaksimalkan, atau "penuh" untuk layar penuh. |
| --proxy_server | Atur host dan port server proxy, dalam formulir <host>: <port> |
| -c, --config-File | Tentukan file konfigurasi untuk digunakan |
| -D, --debug | Memberikan output debugging ke stdout |
| -e, --allow_external | Izinkan browser untuk membuka konten dalam program eksternal melalui tipe MIME |
| -g, --allow_plugins | Izinkan penggunaan plugin seperti flash, java, dll. |
| -H, --help | Tampilkan Bantuan Cepat pada Sintaks Baris Perintah |
| -I, --con-tema | Tema ikon untuk digunakan. Anda harus memasang tema -tema ini sendiri |
| -l, --url | "Lokasi Mulai" untuk browser. Ini adalah URL awal yang akan dimuat, dan di mana ia akan kembali saat diatur ulang. |
| -n,--no-navigasi | Matikan panel navigasi (belakang, maju, rumah, jalan pintas, dll). |
| -p, - -popup | Aktifkan pembuatan jendela baru saat tautan diklik yang terbuka di jendela baru, atau Javascript mencoba membuka jendela |
| -t, -waktu | Batas waktu untuk monitor tidak aktif. Setelah beberapa detik tidak aktif ini, setel ulang browser |
| -u, --user | Atur Nama Pengguna Default untuk dikirim saat situs meminta otentikasi |
| -W, --password | Atur kata sandi default yang akan dikirim saat situs meminta otentikasi |
| -z, --zoom | Faktor zoom default untuk konten. 0 mengabaikan ini. 1 adalah default, 2 akan berukuran ganda, 0,5 akan setengah ukuran, dll. |
AdmBrowser juga menerima argumen baris perintah QT bawaan, yang memberikan beberapa overrides tingkat rendah. Dokumentasi sakelar ini dapat ditemukan di https://doc.qt.io/qt-5/qapplication.html#qapplication.
File konfigurasi sampel sepenuhnya dikomentari, dan harus cukup mudah dikonfigurasi jika Anda baru saja membacanya. Jika Anda hanya ingin memulai dari awal, berikut adalah opsi konfigurasi saat ini yang tersedia untuk aplikasi.
| Nama opsi | Nilai default | Penjelasan |
|---|---|---|
| Izin_external_content | PALSU | Apakah akan mengizinkan konten non-HTML, misalnya file PDF. Jika ini benar, Anda perlu menentukan penangan konten untuk jenis MIME atau kesalahan 404, "kesalahan jaringan", atau halaman kosong kemungkinan akan ditampilkan kepada pengguna. |
| Izin_plugins | PALSU | Jika benar, memungkinkan penggunaan plugin seperti flash, java, dll. |
| izin_popups | PALSU | Apakah akan mengizinkan navigasi yang mengharuskan membuka jendela browser baru, seperti javascript window.open () panggilan atau tautan dengan target "_blank". Jika salah, navigasi akan diabaikan. Jika benar, jendela baru akan dibuat seperti yang diharapkan. |
| force_js_confirm | "bertanya" | Jika diatur untuk "menerima" atau "menyangkal", akan mengganti kotak dialog JavaScript adalah-Anda-aman-Anda-ingin-keluar-keluar dengan jawaban yang ditentukan, jika diatur ke "Tanya" (default) akan meminta pengguna setiap kali. |
| Suppress_alerts | PALSU | Jika benar, blok peringatan popup JavaScript dari muncul, atau tunjukkan saat salah. |
| Izin_Printing | PALSU | Aktifkan pencetakan halaman web dari menu konteks atau bilah alat. |
| print_settings | (kosong) | Tentukan pengaturan printer default, lihat di bawah. |
| default_password | (kosong) | kata sandi default untuk dikirim saat halaman meminta otentikasi |
| default_user | (kosong) | nama pengguna default untuk mengirim saat halaman meminta otentikasi |
| icon_theme | (QT5 default) | Tema ikon untuk digunakan untuk ikon navigasi |
| navigasi | BENAR | Tampilkan bilah navigasi di bagian atas (Back/Forward/Reload/Bookmark/Quit) |
| navigation_layout | (Lihat di bawah) | Menetapkan tata letak bilah navigasi. Lihat penjelasan terperinci di bawah ini. |
| network_down_html | (kosong) | Saat ini_broken jalur lengkap ke file yang berisi HTML yang akan ditampilkan ketika halaman Start_Url tidak dapat dimuat, yang mungkin menunjukkan semacam kesalahan jaringan. |
| page_unavailable_html | (kosong) | Saat ini_BROKEN Jalur lengkap ke file yang berisi HTML yang akan ditampilkan ketika halaman tidak dapat dimuat, baik karena tidak dapat diakses atau diblokir oleh pembatasan keamanan. |
| privacy_mode | BENAR | Mengaktifkan atau menonaktifkan mode penelusuran pribadi |
| user_agent | (QT5 default) | Menimpa string agen pengguna default. |
| proxy_server | (kosong) | Mengatur string server proxy untuk proxy http. Take the Form Host: Port, atau hanya host jika Anda ingin menggunakan port default 8080. |
| QUIT_BUTTON_MODE | mengatur ulang | Sama seperti timeout_mode, hanya ini adalah tindakan yang diambil ketika tombol QUIT ditekan (opsi yang sama) |
| QUIT_BUTTON_TEXT | "Saya & selesai" | Teks untuk ditampilkan pada tombol QUIT/RESET. Dapat menyertakan indikator akselerator (&). |
| screensaver_url | About blank | URL untuk dikunjungi saat menganggur. Hanya masalah ketika timeout_mode adalah "screensaver" dan "timeout" adalah bukan nol. |
| ssl_mode | ketat | Mendefinisikan bagaimana browser menangani kesalahan sertifikat SSL. "Ketat" hanya akan memberikan kesalahan dan mencegah akses ke URL yang bermasalah. "Abaikan" akan diam -diam mengabaikan kesalahan dan memungkinkan akses. |
| start_url | About blank | URL awal |
| Stylesheet | (kosong) | Nama file dari stylesheet format QSS untuk digunakan untuk menata jendela aplikasi. Lihat file contoh. |
| Batas waktu | 0 | Jumlah detik tidak aktif sebelum browser menutup atau mengatur ulang sendiri. Nilai 0 menonaktifkan fitur. |
| timeout_mode | mengatur ulang | Tindakan yang dilakukan pada batas waktu tidak aktif. Nilai dapat "diatur ulang" (untuk kembali ke URL awal dan sejarah yang jelas), "tutup" (untuk menutup program), atau "screensaver" (untuk menampilkan screensaver_url saat idle) |
| daftar putih | (kosong) | Daftar domain web atau host untuk memungkinkan akses ke (lihat di bawah). |
| window_icon | (kosong) | Jalur lengkap file ikon yang akan ditampilkan oleh Window Manager. |
| window_size | "Max" | Jadikan jendela default ke ukuran ini. Dapat menjadi <blget> x <tight> (misalnya "800x600"), "Max" untuk Maksimalkan, atau "Penuh" untuk layar penuh. |
| window_title | "Browser" | Judul jendela khusus yang akan ditampilkan oleh manajer jendela. |
| zoom_factor | 1.0 | Jumlah zoom yang diterapkan pada halaman. .5 adalah setengah ukuran, 2.0 ukuran ganda, dll. |
Bookmark dibuat dalam daftar YAML yang disebut "Bookmark" dengan format ini:
Bookmark:
1:
Nama: "Nama Bookmark"
URL: "http: //bookmark.url/"
Deskripsi: "Deskripsi Singkat dari Bookmark, untuk tooltip"
2:
Nama: "Nama Bookmark Lain":
URL: "http://example.com/some_bookmark"
Deskripsi: "Deskripsi Singkat Bookmark Ini"
Nama Bookmark dapat menyertakan Ampersand untuk menentukan kunci akselerator. Anda juga dapat menentukan entri bookmark seperti itu:
Bookmark:
"Nama bookmark":
URL: "http: //bookmark.url/"
Deskripsi: "Deskripsi Singkat dari Bookmark, untuk tooltip"
Ini lebih kompak, tetapi downside adalah bahwa Anda tidak memiliki kendali atas urutan bookmark (mereka diperintahkan oleh kunci, jadi itu akan menjadi alfabet dengan nama). Mode ini benar -benar untuk kompatibilitas ke belakang, tetapi jika Anda memiliki banyak bookmark yang Anda inginkan abjad dan ingin menyimpan beberapa pengetikan, ini mungkin cara untuk pergi.
Jika Anda mengizinkan konten eksternal diluncurkan, array "content_handlers" memungkinkan Anda untuk menentukan di mana program konten eksternal akan dibuka berdasarkan jenis mime. Sintaks terlihat seperti ini:
content_handlers: "Aplikasi/PDF": "XPDF" "Application/vnd.oasis.opendocument.text": "libreoffice"
AdmBrowser akan mengunduh file ke direktori temp dan meneruskannya sebagai argumen untuk perintah apa pun yang Anda tentukan di kolom kedua. Waspadai hal ini, seperti dalam beberapa kasus Anda mungkin ingin menulis skrip pembungkus semacam untuk menangani beberapa jenis file atau program yang tidak berurusan dengan argumen dengan baik.
Parameter "navigation_layout" adalah daftar item yang akan ditempatkan di bilah navigasi, jika itu ditampilkan. Anda dapat memilih dari yang berikut:
Daftar ini dapat ditentukan dalam format daftar YAML yang valid, tetapi saya sarankan melampirkannya dalam kawat gigi persegi dan berpisah dengan koma. "Pemisah" dan "spacer" dapat digunakan sebanyak yang Anda inginkan, yang lain hanya boleh digunakan sekali masing -masing.
Fitur WhiteList ditambahkan sebagai kenyamanan untuk membantu mengunci kios Anda ketika Anda tidak memiliki kendali penuh atas semua tautan di halaman kios Anda dan ingin mencegah pengguna pergi ke situs yang aneh. Ini bukan firewall atau filter konten, dan mungkin tidak berperilaku persis seperti yang Anda harapkan; Jadi, jika Anda berencana untuk menggunakannya, silakan baca sedikit tentang apa yang dilakukannya dan apa yang tidak dilakukannya.
Jika Anda tidak ingin menggunakan fitur WhiteList, cukup komentari, biarkan daftar kosong, atau berikan nilai "false".
Anda memberi daftar putih daftar domain atau host , seperti ini:
Daftar putih: ["entahtik.
Setiap kali pengguna mengklik tautan atau mencoba menavigasi ke halaman, nama host diekstraksi dari URL yang diminta dan dicocokkan dengan daftar putih. Jika ada kecocokan, halaman ditampilkan; Jika tidak, teks kesalahan ditampilkan.
Beberapa hal otomatis:
Jika Anda hanya ingin memutarbalikkan URL start_url dan bookmark dan tidak ada yang lain, Anda bisa melakukan ini di file konfigurasi:
Daftar putih: Benar
Saat mengandalkan daftar putih otomatis, penting untuk dipahami bahwa string host lengkap URL ini masuk daftar putih. Jadi misalnya, jika start_url Anda adalah "http://example.com", "example.com" akan ditambahkan ke whitelist (dan dengan demikian semua subdomain dari example.com, seperti foo.example.com, bar.example.com, dll.). Jika Anda menentukan "http://www.example.com" sebagai start_url, meskipun, "www.example.com" ditambahkan ke daftar putih. Jadi, "foo.example.com" tidak akan masuk daftar putih.
Perhatikan juga bahwa jika Anda memutar daftar URL yang hanya meneruskan Anda ke host lain, Anda perlu menentukan kedua host di WhiteList.
Mode screensaver adalah mode batas waktu khusus yang memungkinkan Anda menampilkan URL yang diberikan hanya saat browser menganggur. Pertimbangkan konfigurasi seperti ini:
start_url: 'http://example.com/kiosk' Batas waktu: 1800 timeout_mode: 'screensaver' screensaver_url: 'http://example.com/slides'
Konfigurasi ini akan melakukan hal berikut:
Screensaver_url bisa, misalnya, rotator gambar, halaman dengan iklan, pesan selamat datang, dll. Tidak terlalu penting, tetapi perlu diingat bahwa pengguna tidak dapat benar -benar berinteraksi dengan halaman screensaver, karena begitu mereka menyentuh mouse atau keyboard, start_url akan memuat.
AdmBrowser akan memungkinkan Anda untuk mengatur host (nama atau IP) dan nomor port untuk proxy http. HTTPS, FTP, Socks, atau proxy yang diautentikasi saat ini tidak didukung. Anda dapat mengatur pengaturan proxy satu dari tiga cara:
Untuk mengatur server proxy, gunakan format host: port, seperti dalam contoh -contoh ini:
proxyserver.mynetwork.local: 3128 Localhost: 8080 192.168.1.1:8880
Jika Anda lalai memasukkan port, dan cukup letakkan alamat IP atau nama host, port 8080 akan digunakan secara default.
Perhatikan fitur ini mungkin tidak berfungsi pada beberapa OS. Saat ini bergantung pada pengaturan variabel lingkungan HTTP_PROXY (terlepas dari metode mana yang Anda gunakan untuk mengonfigurasinya), yang mungkin tidak dihormati pada semua sistem. Ini pasti berfungsi di Linux, dan mungkin pada sistem seperti Unix.
AdvBrowser mendukung mengonfigurasi pengaturan printer default dan memungkinkan pencetakan tanpa menampilkan kotak dialog. Opsi diatur dengan variabel print_settings. Misalnya:
print_settings:
Diam: Benar
Margin: [5, 5, 3, 3]
Orientasi: "Lansekap"
Opsi berikut didukung:
| Nama opsi | Nilai default | Penjelasan |
|---|---|---|
| diam | PALSU | Ketika benar, AdmBrowser akan segera mencetak tanpa menampilkan kotak dialog pencetakan. |
| orientasi | "potret" | Menentukan pencetakan dalam orientasi potret atau lanskap. |
| size_unit | "milimeter" | Menentukan unit ukuran apa yang digunakan oleh variabel kertas_size dan margin. Dapat menjadi "milimeter", "titik", "inch", "pica", "didot", "cicero", atau "devicepixel". |
| margin | (default printer) | Menentukan margin printer sebagai daftar dalam bentuk: [kiri, atas, kanan, bawah]. Contoh: [5, 3.5, 6, 2.4]. Unit ditentukan oleh variabel size_unit. |
| kertas_size | (default printer) | Menentukan ukuran kertas sebagai daftar dalam bentuk: [lebar, tinggi]. Contoh: [500, 650.5]. Unit ditentukan oleh variabel size_unit. |
| resolusi | (default printer) | Menentukan resolusi printer dalam PPI (piksel per inci). |
| mode | "layar" | Menetapkan resolusi apa yang akan digunakan printer, "layar": Resolusi layar (default) atau "tinggi": Resolusi maksimum printer |
Berikut ini adalah batasan yang diketahui:
Masalah -masalah berikut muncul dengan port dari QTWebKit ke QTWebengine:
Jika Anda menemukan bug, silakan laporkan sebagai "masalah" di halaman GitHub proyek: http://github.com/alandmoore/admbrowser/issues. Jika "bug" Anda benar -benar permintaan fitur, lihat di bawah.
ADMBROWSER dapat bekerja pada Raspberry Pi, secara teori, tetapi tidak pada Raspbian 10 . AdmBrowser membutuhkan qtwebengine, yang (pada Januari 2020) tidak dikemas untuk Raspbian 10.
Untuk menggunakan AdmBrowser, Anda perlu menggunakan distribusi yang menyediakan versi kerja QTWebengine. Pada Januari 2020, berbagai solusi telah diuji dengan hasil berikut (diuji pada PI 3B+):
| Distro | Lengkungan | Bekerja? | Penjelasan |
|---|---|---|---|
| OpenSUSE LEAP 15.1 | ARM64 | Ya | Tampaknya bekerja dengan sempurna, meskipun agak lambat. |
| Ubuntu Mate 20.04 Alpha | armhf | Ya | Tampaknya bekerja dengan sempurna, tetapi sangat lambat. Lebih lambat dari OpenSUSE. |
| Ubuntu Mate 18.04 | armhf | Hampir | Diluncurkan, tetapi segfault sering saat memuat halaman. |
| Ubuntu Server 19.10 | ARM64 | TIDAK | Skrip pyqt segfault saat membuat qapplication jika qtwebengineWidgets diimpor. |
| Fedberry 27 | ARMV7 | TIDAK | SEGV_MAPERR Saat mencoba menampilkan QWebengineView |
Lihat masalah #16 untuk diskusi berkelanjutan tentang dukungan Raspberry Pi.
Kontribusi dipersilakan, asalkan konsisten dengan semangat dan niat browser-yaitu, mereka adalah fitur yang berguna dalam kios, signage, atau situasi penguncian lainnya, dan menjaga browser tetap sederhana untuk dikonfigurasi. Saya juga lebih suka perubahan fitur atau perilaku adalah opt-in (membutuhkan sakelar untuk memungkinkannya), kecuali jika tidak masuk akal untuk melakukannya dengan cara itu.
Jika Anda berkontribusi kode, silakan ikuti praktik terbaik ini:
Jika ada fitur yang ingin Anda lihat didukung dalam proyek ini, Anda memiliki tiga opsi untuk melihatnya diimplementasikan:
AdmBrowser dirilis di bawah ketentuan GNU GPL V3.