H5 biasanya memunculkan kebutuhan ini dalam aplikasi. Di era di mana seluler adalah rajanya, h5 memainkan peran penting dalam pengalihan lalu lintas aplikasi.
Metode pembangkitan yang saat ini kami gunakan adalah skema url (didukung oleh platform iOS dan Android). Anda hanya perlu mendaftarkan skema selama pengembangan APP asli, dan kemudian ketika pengguna mengklik tautan tersebut, mereka akan secara otomatis melompat ke APP.
Tiga pilihan gairahiframe
var last = Date.now(), doc = window.document, ifr = doc.createElement('iframe');//Buat iframe tersembunyi ifr.src = nativeUrl;ifr.style.cssText = 'display:none;border :0;lebar:0;tinggi:0;';doc.body.appendChild(ifr);setTimeout(function() { doc.body.removeChild(ifr); //setTimeout kurang dari 2000 umumnya merupakan kegagalan panggilan if (Date.now() - last < 2000) { if (typeof onFail == 'function') { onFail() } else { //Permintaan pop-up atau pemrosesan unduhan, dll.} } else { if (typeof onSuccess == 'function') { onSuccess(); 1000);Prinsip pembangkitan solusi iframe adalah: ketika program beralih ke latar belakang, pengatur waktu akan tertunda (situasi lain di mana pengatur waktu tidak akurat). Jika aplikasi dibangunkan, halaman web pasti akan memasuki latar belakang. Jika pengguna beralih kembali dari aplikasi, waktu biasanya akan melebihi 2 detik; jika aplikasi tidak dibangunkan, halaman web tidak akan memasuki latar belakang waktu, dan waktunya tidak akan melebihi 2 detik.
window.location.href melompat secara langsung
window.lokasi.href = nativeUrl;
sebuah tag membangkitkan
<a href=nativeUrl>Cabut aplikasi</a>
Pengujian browser terhadap tiga skenario kebangkitan
iframe membangkitkan hasil pengujian aplikasi
window.location.href menampilkan hasil pengujian aplikasi
sebuah tag membangkitkan hasil pengujian aplikasi
iframe dan window.location.href membangkitkan kontras
iframe, window.location.href dan tag membangkitkan perbandingan antara ketiganya
Analisis hasil tesPertama, model dan browser yang diuji terbatas, dan hasil di atas hanya untuk referensi.
Membandingkan kebangkitan iframe dan location.href, kita dapat menemukan:
Melalui analisa perbandingan di atas, lebih tepat menggunakan iframe untuk Android dan window.location.href untuk ios.
Perbedaan antara kebangkitan langsung dan kebangkitan yang didorong oleh peristiwa saat memasuki halaman
Ada perbedaan yang jelas antara kedua skenario gairah ini di Android, apakah itu ditimbulkan oleh iframe atau location.href, ambil contoh chrome Xiaomi 1s:
<a id=goApp href=javascript:void(0);>Klik saya untuk membuka APLIKASI</a>
Mengikat peristiwa secara manual mendorong kebangkitan:
//Berhasil membangkitkan window.onload = function () { $('#goApp').on(click, function () { window.lib.callapp(nativeUrl);//iframe //window.location.href = nativeUrl; });};Masuk ke halaman untuk langsung memanggil:
//Panggilan gagal window.onload = function () { window.lib.callapp(nativeUrl);//iframe //window.location.href = nativeUrl;};Acara pengikatan, js membangkitkan
//Panggilan gagal window.onload = function () { $('#goApp').on(click, function () { window.lib.callapp(nativeUrl);//iframe //window.location.href = nativeUrl; }); $('#goApp).trigger('klik');};Awalnya, saya mengira metode $('#goApp).trigger('click'); sama dengan klik manual, tetapi performa sebenarnya adalah performa peristiwa yang dipicu js sama tidak validnya dengan lompatan halaman langsung.
Dari postingan blog referensi, kita dapat melihat bahwa platform Android dan berbagai produsen aplikasi sangat berbeda. Misalnya, Chrome tidak lagi mendukung skema pemicu lompatan melalui js (klik non-pengguna), menyetel alamat iframe src, dll. dan seterusnya. Oleh karena itu, masih terdapat perbedaan besar antara pemicuan js dan klik pengguna langsung, yang mungkin serupa dengan pembatasan pemutaran audio.
akhirnyaSetelah pengujian dan analisis di atas, pada dasarnya telah ditentukan bahwa lebih tepat menggunakan window.location.href untuk ios dan iframe untuk Android. Saat kami menggunakan iframe untuk membangkitkan, biasanya kami menangani kegagalan kebangkitan dengan mengunduh secara langsung. Namun ada masalah di sini, yaitu browser tidak dapat mendeteksi apakah kebangkitan berhasil kebangkitan berhasil, browser masih akan muncul. Pengalaman mengunduh informasi sangat buruk. Tentu saja, kita juga perlu menangani beberapa fungsi panggilan balik yang berhasil atau gagal. Mungkin skenario kita hanya perlu dibangkitkan dan tidak memerlukan pengunduhan setelah kegagalan.
Mengenai penggunaan location.href untuk memunculkan aplikasi asli di iPhone, metode melompat ke halaman perantara mungkin lebih baik daripada pemrosesan langsung halaman saat ini.
Di atas adalah keseluruhan isi artikel ini, saya harap dapat bermanfaat untuk pembelajaran semua orang. Saya juga berharap semua orang mendukung VeVb Wulin Network.