Baru-baru ini apabila membangunkan aplikasi berasaskan geolokasi kecil menggunakan uniapp, saya mencuba pelbagai kaedah untuk mendapatkan maklumat geolokasi pengguna. Saya mendapati bahawa apabila aplikasi dibungkus, dalam beberapa kes, aplikasi tidak boleh mendapatkan maklumat lokasi. Selepas penyiasatan, saya mendapati bahawa ini disebabkan oleh aplikasi tidak menambah kebenaran yang sesuai semasa membungkus. Artikel ini akan menerangkan secara terperinci kaedah mendapatkan maklumat kedudukan dalam uniapp dan penyelesaian kepada masalah kegagalan kedudukan selepas membungkus aplikasi.
1. Cara mendapatkan maklumat lokasi dalam uniapp
Uniapp menyediakan cara yang sangat mudah untuk mendapatkan maklumat lokasi geografi, iaitu menggunakan API uni.getLocation() yang disediakan secara rasmi oleh uniapp. API ini perlu memasukkan parameter pilihan untuk mengkonfigurasi kaedah mendapatkan maklumat lokasi. Pilihan yang boleh ditetapkan termasuk:
- jenis: kaedah penentududukan Nilai lalai ialah wgs84, yang menggunakan GPS untuk penentududukan. Jika ditetapkan kepada gcj02, algoritma penyulitan Biro Tinjauan Nasional akan digunakan;
- altitud: sama ada untuk mendapatkan maklumat ketinggian, lalainya adalah palsu; >
gagal: fungsi panggil balik selepas kedudukan gagal; - selesai: fungsi panggil balik selepas kedudukan selesai.
-
- Antaranya, apabila penentududukan berjaya, anda boleh mendapatkan longitud, latitud, kelajuan, ketepatan dan maklumat terperinci lain bagi maklumat lokasi. Kaedah pelaksanaan khusus adalah seperti berikut:
uni.getLocation({
type: 'wgs84',
success: function (res) {
console.log('经度:' + res.longitude);
console.log('纬度:' + res.latitude);
console.log('速度:' + res.speed);
console.log('精度:' + res.accuracy);
},
fail: function (err) {
console.log('定位失败:' + err);
}
});
Salin selepas log masuk
2. Masalah kegagalan kedudukan selepas membungkus aplikasi
Walaupun kaedah mendapatkan maklumat kedudukan dalam uniapp adalah sangat mudah, selepas membungkus aplikasi, mungkin terdapat Ditemui situasi di mana maklumat kedudukan tidak boleh diperolehi. Ini kerana, apabila aplikasi dibungkus, kebenaran yang sepadan tidak ditambahkan. Jika anda ingin mendapatkan maklumat lokasi, anda harus menambahkan kebenaran berikut pada fail manifest.json:
"app-plus": {
"permissions": {
"location": {
"desc": "用于获取定位信息"
}
}
}
Salin selepas log masuk
Kebenaran app-plus digunakan di sini kerana kebenaran ini boleh mendapatkan semua kebenaran peranti sistem dalam aplikasi . Termasuk kamera, rakaman, storan fail, simulator telefon mudah alih, rakaman skrin dan kebenaran lain. Jika anda hanya perlu mendapatkan kebenaran lokasi, anda boleh menggunakan kebenaran "lokasi" untuk menetapkannya.
3. Ringkasan
Dalam uniapp, kaedah untuk mendapatkan maklumat lokasi geografi adalah sangat mudah, hanya gunakan API uni.getLocation(). Walau bagaimanapun, sebelum membungkus aplikasi, pastikan anda menambah kebenaran yang sepadan dalam fail manifest.json, jika tidak, maklumat geolokasi tidak akan diperoleh.
Akhir sekali, perhatian khusus diperlukan: fungsi penentududukan menggunakan kuasa pengguna dan sumber pengkomputeran, jadi apabila digunakan dalam aplikasi, kekerapan mendapatkan maklumat lokasi harus dikurangkan dengan sewajarnya, dan pengguna harus diberi gesaan yang mencukupi dan kebenaran.
Atas ialah kandungan terperinci Latitud dan longitud kedudukan tidak boleh diperolehi selepas uniapp dibungkus.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!