Rumah hujung hadapan web uni-app uniapp melaksanakan daftar masuk lokasi

uniapp melaksanakan daftar masuk lokasi

May 22, 2023 am 10:42 AM

Dengan populariti Internet mudah alih, banyak syarikat mempunyai aplikasi mudah alih mereka sendiri Salah satu fungsi yang sangat praktikal ialah daftar masuk lokasi. Melalui daftar masuk lokasi, syarikat boleh menguruskan pekerja, seperti kehadiran, penugasan tugas, dsb. Artikel ini memperkenalkan cara menggunakan uniapp untuk membangunkan aplikasi mudah alih untuk daftar masuk lokasi.

1. Persediaan

Sebelum memulakan pembangunan, anda perlu menyediakan perkara berikut:

  1. persekitaran pembangunan uniapp
  2. Alat pembangunan program mini
  3. Akaun Pembangun Amap

Jika anda tidak mempunyai pengalaman yang berkaitan, anda boleh mempelajari asas program uniapp dan mini dahulu. Seterusnya, mari kita ke intinya.

2. Integrasikan Amap

  1. Daftar akaun pembangun Amap

Daftar akaun pembangun pada platform terbuka Amap dan buat Aplikasi memperoleh Kunci. Kunci ialah pengesahan identiti untuk panggilan API dan boleh digunakan dalam aplikasi.

  1. Sepadukan Amap SDK

Perkenalkan Amap SDK ke dalam projek uniapp seperti berikut:

1) Buka projek uniapp dalam HBuilderX
2) Klik kanan folder "uni_modules" dan pilih "Install npm dependency"
3) Masukkan "@jv-uni/amap" dalam kotak carian, pilih "uni-app amap positioning plug-in", dan klik " Install "

  1. Mencapai kebenaran dan kedudukan

Mencapai kebenaran dan kedudukan dalam projek uniapp. Langkah-langkah khusus adalah seperti berikut:

1) Gunakan yang berikut pada halaman Kod memperkenalkan pemalam peta Gaode

import amap from '@jv-uni/amap';
Salin selepas log masuk

2) Tambahkan kaedah AMap.plugin

mounted() { 
  this.getLocation(); 
},
methods: { 
  getLocation() { 
    AMap.plugin('AMap.Geolocation', () => { 
      let geolocation = new AMap.Geolocation({ 
        enableHighAccuracy: true, 
        timeout: 10000, 
        buttonOffset: new AMap.Pixel(10, 10), 
        zoomToAccuracy: true, 
        buttonPosition: 'RB' 
      }); 
      geolocation.getCurrentPosition((status, result) => { 
        if (status === 'complete') { 
          this.longitude = result.position.lng; 
          this.latitude = result.position.lat; 
          this.address = result.formattedAddress; 
        } else { 
          uni.showToast({ 
            icon: 'none', 
            title: '获取地址失败' 
          }); 
        } 
      }); 
    }); 
  } 
}
Salin selepas log masuk

ke halaman yang perlu diletakkan melalui kaedah AMap.plugin, kami memperkenalkan pemalam kedudukan peta Gaode, dan pada masa yang sama Mendapatkan maklumat latitud, longitud dan alamat peranti semasa.

3. Laksanakan fungsi log masuk

Melalui langkah di atas, kami sudah boleh mendapatkan maklumat lokasi semasa, dan kemudian kami boleh melaksanakan fungsi log masuk berdasarkan maklumat lokasi yang diperolehi .

  1. Simpan maklumat lokasi daftar masuk

Selepas mendapatkan maklumat lokasi, kami perlu menyimpan maklumat tersebut ke pangkalan data. Fungsi storan boleh dilaksanakan dengan memanggil API storan data dalam uniapp Langkah-langkah khusus adalah seperti berikut:

uni.setStorageSync('longitude', this.longitude); 
uni.setStorageSync('latitude', this.latitude); 
uni.setStorageSync('address', this.address); 
Salin selepas log masuk
  1. Paparkan status daftar masuk

Selepas semakan. maklumat lokasi -masuk berjaya disimpan, status daftar masuk dipaparkan . Kami boleh menetapkan butang daftar masuk pada halaman semasa, dan selepas pengguna mengklik butang tersebut, keputusan daftar masuk akan dipaparkan.

<button type="default" @click="signIn()">签到</button> 
<view v-if="signInSuccess">签到成功</view> 
<view v-else>未签到</view> 
Salin selepas log masuk

Gunakan perintah v-if untuk merealisasikan kesan paparan selepas berjaya log masuk.

  1. Peraturan log masuk

Pelaksanaan fungsi log masuk juga perlu mengambil kira peraturan log masuk. Peraturan daftar masuk syarikat biasanya termasuk masa daftar masuk, alamat daftar masuk, dsb. Peraturan daftar masuk boleh dilaksanakan dengan mudah melalui langkah berikut:

1) Catatkan masa semasa

Kita boleh menambah kaedah untuk mendapatkan masa semasa dalam butang daftar masuk.

getNowFormatDate() { 
  let date = new Date(); 
  let seperator1 = "-"; 
  let year = date.getFullYear(); 
  let month = date.getMonth() + 1; 
  let strDate = date.getDate(); 
  if (month >= 1 && month <= 9) { 
    month = "0" + month; 
  } 
  if (strDate >= 0 && strDate <= 9) { 
    strDate = "0" + strDate; 
  } 
  let currentdate = year + seperator1 + month + seperator1 + strDate; 
  return currentdate; 
}
Salin selepas log masuk

2) Tentukan peraturan daftar masuk

Peraturan daftar masuk perlu memasukkan masa daftar masuk, alamat daftar masuk, dsb. Kami boleh menetapkan objek JSON dalam projek uniapp kepada menyimpan peraturan daftar masuk.

signs: { 
  "2021-11-01": [ 
    { 
      longitude: 116.397428, 
      latitude: 39.90923, 
      address: "北京市东城区正义路5号" 
    }, 
    ... 
  ], 
  ... 
} 
Salin selepas log masuk

Antaranya, "2021-11-01" mewakili peraturan daftar masuk untuk hari tertentu dan nilainya ialah tatasusunan. Tatasusunan menyimpan longitud, latitud, alamat dan maklumat lain lokasi daftar masuk dalam bentuk objek JSON.

3) Laksanakan pengesahan peraturan daftar masuk

Pengesahan peraturan daftar masuk memerlukan membandingkan masa semasa dengan peraturan log masuk dan mengesahkan sama ada lokasi semasa berada dalam peraturan log masuk . Kita boleh menambah fungsi pengesahan peraturan dalam kaedah daftar masuk.

isSigned(signs, signDate, longitude, latitude) { 
  return ( 
    signs.hasOwnProperty(signDate) && 
    Array.isArray(signs[signDate]) && 
    signs[signDate].some(sign => { 
      let distance = AMap.GeometryUtil.distance( 
        [longitude, latitude], 
        [sign.longitude, sign.latitude]
      ); 
      return distance <= 500; 
    }) 
  ); 
}
Salin selepas log masuk

Fungsi ini perlu memasukkan parameter seperti peraturan daftar masuk, tarikh daftar masuk dan lokasi semasa Nilai pulangan ialah jenis Boolean, menunjukkan sama ada lokasi semasa berada dalam skop semakan -dalam peraturan.

4) Tingkatkan kaedah log masuk

Kaedah log masuk perlu melengkapkan pengesahan peraturan daftar masuk, memaparkan status log masuk dan menyimpan rekod log masuk dan lain-lain fungsi.

signIn() { 
  let signDate = this.getNowFormatDate(); 
  let signs = uni.getStorageSync('signs') || {}; 
  if (this.isSigned(signs, signDate, this.longitude, this.latitude)) { 
    this.signInSuccess = true; 
    uni.showToast({ 
      icon: 'none', 
      title: '您已签到' 
    }); 
  } else { 
    this.signInSuccess = false; 
    uni.showToast({ 
      icon: 'none', 
      title: '您未签到' 
    }); 
  } 
  signs[signDate] = signs[signDate] || []; 
  signs[signDate].push({ 
    longitude: this.longitude, 
    latitude: this.latitude, 
    address: this.address 
  }); 
  uni.setStorageSync('signs', signs); 
}
Salin selepas log masuk

Melalui langkah di atas, kita sudah boleh melaksanakan fungsi daftar masuk lokasi yang mudah. Perusahaan boleh menambah baik dan mengembangkan lagi fungsi ini mengikut keperluan mereka sendiri.

Ringkasan

Artikel ini memperkenalkan cara menggunakan uniapp untuk membangunkan aplikasi mudah alih untuk daftar masuk lokasi. Dengan menyepadukan SDK Amap dan melaksanakan keizinan serta kedudukan, kami boleh mendapatkan maklumat lokasi peranti semasa. Dengan menyimpan maklumat lokasi daftar masuk, melaksanakan pengesahan peraturan daftar masuk dan memperbaik kaedah daftar masuk, kami sudah boleh melaksanakan aplikasi daftar masuk berasaskan lokasi asas. Dalam proses amalan, pembaca boleh menambah baik dan mengembangkan lagi fungsi ini mengikut keperluan mereka sendiri untuk mencapai pengurusan perusahaan yang lebih baik.

Atas ialah kandungan terperinci uniapp melaksanakan daftar masuk lokasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Bagaimanakah saya menggunakan preprocessors (sass, kurang) dengan uni-app? Mar 18, 2025 pm 12:20 PM

Artikel membincangkan menggunakan SASS dan kurang preprocessors dalam UNI-APP, memperincikan persediaan, faedah, dan penggunaan dwi. Fokus utama adalah pada konfigurasi dan kelebihan. [159 aksara]

Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Mar 27, 2025 pm 04:59 PM

Artikel ini membincangkan pelbagai jenis ujian untuk aplikasi UNIAPP, termasuk unit, integrasi, fungsional, UI/UX, prestasi, silang platform, dan ujian keselamatan. Ia juga meliputi memastikan keserasian silang platform dan mengesyorkan alat seperti JES

Bagaimana saya menggunakan API Animasi Uni-App? Bagaimana saya menggunakan API Animasi Uni-App? Mar 18, 2025 pm 12:21 PM

Artikel ini menerangkan cara menggunakan API Animasi Uni-App, memperincikan langkah-langkah untuk membuat dan menggunakan animasi, fungsi utama, dan kaedah untuk menggabungkan dan mengawal masa animasi.

Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Mar 27, 2025 pm 04:45 PM

Artikel ini membincangkan strategi untuk mengurangkan saiz pakej UNIAPP, memberi tumpuan kepada pengoptimuman kod, pengurusan sumber, dan teknik seperti pemisahan kod dan pemuatan malas.

Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Mar 27, 2025 pm 05:05 PM

Artikel ini membincangkan alat penyahpepijatan dan amalan terbaik untuk pembangunan UNIPP, yang memberi tumpuan kepada alat seperti HBuildex, WeChat Developer Tools, dan Chrome Devtools.

Bagaimana saya menggunakan API Penyimpanan Uni-App (uni.setstorage, uni.getstorage)? Bagaimana saya menggunakan API Penyimpanan Uni-App (uni.setstorage, uni.getstorage)? Mar 18, 2025 pm 12:22 PM

Artikel ini menerangkan cara menggunakan API penyimpanan Uni-App (uni.setstorage, uni.getstorage) untuk pengurusan data tempatan, membincangkan amalan terbaik, penyelesaian masalah, dan menyoroti batasan dan pertimbangan untuk kegunaan yang berkesan.

Bagaimanakah saya menggunakan API Uni-App untuk mengakses ciri peranti (kamera, geolokasi, dll)? Bagaimanakah saya menggunakan API Uni-App untuk mengakses ciri peranti (kamera, geolokasi, dll)? Mar 18, 2025 pm 12:06 PM

Artikel ini membincangkan menggunakan API UNI-APP untuk mengakses ciri peranti seperti kamera dan geolokasi, termasuk tetapan kebenaran dan pengendalian ralat.

Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Mar 27, 2025 pm 04:50 PM

Artikel ini membincangkan mengoptimumkan imej dalam UNIPP untuk prestasi web yang lebih baik melalui mampatan, reka bentuk responsif, pemuatan malas, caching, dan menggunakan format WEBP.

See all articles