Rumah >hujung hadapan web >uni-app >Bagaimana untuk menentukan sama ada kod hanya berjalan dalam Apl dalam uniapp

Bagaimana untuk menentukan sama ada kod hanya berjalan dalam Apl dalam uniapp

PHPz
PHPzasal
2023-04-14 13:53:541436semak imbas

Dengan perkembangan pesat aplikasi mudah alih, rangka kerja pembangunan merentas platform menjadi semakin popular di kalangan pembangun. Uniapp, sebagai rangka kerja pembangunan merentas platform berdasarkan rangka kerja Vue.js, telah menarik banyak perhatian dalam pasaran semasa. Walau bagaimanapun, dalam Uniapp, kadangkala kita perlu menentukan sama ada kod tersebut dijalankan dalam penyemak imbas web atau Apl. Artikel ini akan memperkenalkan cara untuk menentukan sama ada kod hanya berjalan dalam Apl dalam Uniapp.

Kaedah pertama: Gunakan bar navigasi untuk menunjukkan dan menyembunyikan

Bar navigasi dalam Uniapp terbahagi kepada dua kaedah, iaitu bar navigasi App dan bar navigasi Web. Dalam projek, kita boleh menggunakan ciri ini untuk membuat pertimbangan.

Kod dilaksanakan seperti berikut:

uni.onNavigationBarChange((res) => {
  if (res.type === 'show') {
    console.log('在App中运行')
  } else {
    console.log('在Web浏览器中运行')
  }
})

Di sebelah App, bar navigasi dipaparkan secara lalai, jadi apabila bar navigasi dipaparkan, kod tersebut melaksanakan pernyataan 在App中运行. Apabila diakses dalam pelayar web, bar navigasi disembunyikan secara lalai dan pernyataan 在Web浏览器中运行 dilaksanakan. Nota: Kaedah ini memerlukan bar navigasi didayakan dalam halaman.

Kaedah kedua: Gunakan kaedah uni.getSystemInfoSync

uni.getSystemInfoSync untuk mendapatkan maklumat peranti dan menilai dengan mendapatkan atribut platform dalam maklumat peranti. Kod

dilaksanakan seperti berikut:

const systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform === 'android' || systemInfo.platform === 'ios') {
  console.log('在App中运行')
} else {
  console.log('在Web浏览器中运行')
}

Apabila dijalankan dalam Apl, atribut platform mengembalikan android atau ios, jadi apabila pernyataan 在App中运行 adalah dilaksanakan, Apabila diakses dalam pelayar web, h5 dikembalikan dan pernyataan 在Web浏览器中运行 dilaksanakan.

Kaedah ketiga: Gunakan uni.postMessage dan onmessage

untuk menghantar mesej ke halaman anda sendiri, kemudian dapatkan mesej dalam onmessage, dan tentukan kod dalam Apl dengan menilai sumber mesej Atau jalankan di sebelah web.

Kod dilaksanakan seperti berikut:

// 发送消息
uni.postMessage({ from: 'uniapp' })

// 监听消息
window.onmessage = (event) => {
  if (event.data.from === 'uniapp') {
    console.log('在App中运行')
  } else {
    console.log('在Web浏览器中运行')
  }
}

Apabila dijalankan dalam Apl, sumber mesej yang dihantar oleh postMessage ialah uniapp, jadi pernyataan 在App中运行 dilaksanakan apabila berjalan dalam pelayar web Apabila diakses, tiada pernyataan dilaksanakan kerana kaedah postMessage tidak dipanggil.

Ringkasan:

Melalui tiga kaedah di atas, kami boleh menentukan dengan lebih tepat sama ada kod tersebut hanya berjalan dalam Apl. Dalam pembangunan sebenar, kaedah yang sesuai boleh dipilih mengikut keperluan projek. Perlu diingat bahawa apabila menggunakan kaedah pertama, bar navigasi perlu didayakan pada halaman.

Uniapp mempunyai banyak fungsi dan ciri yang berkuasa, yang merupakan salah satu sebab mengapa ia popular dalam pembangunan merentas platform. Saya harap artikel ini dapat membantu pembangun Uniapp.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada kod hanya berjalan dalam Apl dalam uniapp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn