Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah uniapp melaksanakan fungsi pemesejan luar talian?

Bagaimanakah uniapp melaksanakan fungsi pemesejan luar talian?

PHPz
PHPzasal
2023-04-18 14:10:062283semak imbas

Dengan populariti dan perkembangan Internet mudah alih, tolakan mesej telah menjadi salah satu fungsi standard aplikasi mudah alih. Dalam senario aplikasi sebenar, pengguna sering menghadapi situasi di mana apabila peranti tidak dapat menyambung ke Internet, mereka mungkin terlepas beberapa mesej penting. Untuk menyelesaikan masalah ini, Jiguang Push menyediakan fungsi pemesejan luar talian, yang boleh menyimpan sementara mesej push pada pelayan Jiguang dan menolaknya kepada pengguna semula selepas peranti disambungkan ke Internet. Dalam aplikasi uniapp, pelaksanaan mesej luar talian juga sangat mudah.

1. Konfigurasi tolak Aurora

Pertama, anda perlu mendaftar akaun pembangun di tapak web rasmi Aurora dan membuat aplikasi. Kemudian ikuti garis panduan dokumentasi rasmi untuk melengkapkan konfigurasi asas aplikasi (seperti mengisi nama aplikasi, nama pakej, tandatangan, dll.), dan menyepadukan Aurora Push SDK ke dalam aplikasi uniapp.

2. Tetapan mesej luar talian

Untuk menggunakan fungsi pemesejan luar talian Aurora, kami perlu mendayakan pilihan pemesejan luar talian pada konsol tapak web rasmi Aurora

Seterusnya, dalam aplikasi uniapp Tambahkan kod berikut pada fail main.js:

import Vue from 'vue'
import App from './App'

// 引入uni推送插件
import { getRegistrationId } from '@/common/jpush.js'

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  ...App
})

// 获取极光注册id
getRegistrationId()

// 将app实例挂载在uni上
uni.$app = app

app.$mount()

Dalam kod ini, kami mula-mula memperkenalkan fail bernama "jpush.js", yang perlu kami buat secara manual. Seterusnya, kami mendapatkan ID pendaftaran Aurora peranti melalui kaedah "getRegistrationId" dan cachenya. Pelaksanaan kaedah ini diterangkan dalam bahagian seterusnya.

3. Mendapatkan mesej luar talian

Dalam bahagian sebelumnya, kami menyebut fail bernama "jpush.js", yang akan melaksanakan mendapatkan ID pendaftaran Aurora peranti dan Cachenya. Kod fail ini adalah seperti berikut:

// 引入uni-app插件包
import { jpush } from '@uni/plugins'

/**
 * 获取极光注册id
 */
export function getRegistrationId() {
  // 先尝试从缓存中获取
  let registrationId = uni.getStorageSync('jpushRegistrationId')
  if (registrationId) {
    return registrationId
  }
  // 调用极光推送插件获取注册id
  jpush.getRegistrationID({
    success(res) {
      console.log('获取jpush注册id成功', res)
      // 缓存注册id
      uni.setStorageSync('jpushRegistrationId', res.registrationId)
      // 将注册id发送到后台服务器
      sendRegistrationIdToServer(res.registrationId)
    },
    fail(err) {
      console.error('获取jpush注册id失败', err)
    }
  })
}

Dalam kod di atas, kami mula-mula cuba mendapatkan ID pendaftaran Aurora peranti daripada cache, dan jika ia sudah wujud dalam cache, ia akan kembali secara langsung. Jika ia tidak wujud dalam cache, hubungi kaedah "getRegistrationID" pemalam jpush dalam apl uni untuk mendapatkan ID pendaftaran peranti. Pada masa ini, objek "res" dikembalikan dalam fungsi panggil balik yang berjaya mengandungi maklumat ID pendaftaran peranti. Kami menyimpan ID pendaftaran ini dalam storan setempat dan menghantarnya ke pelayan bahagian belakang supaya apabila peranti tidak dapat menyambung ke Internet, pelayan boleh menggunakan ID pendaftaran ini untuk menyimpan sementara mesej luar talian pada pelayan Aurora.

4. Semak mesej luar talian apabila aplikasi bermula

Apabila peranti disambungkan semula ke Internet, kami ingin mendapatkan mesej luar talian yang disimpan sementara oleh pelayan Jiguang untuk menolaknya ke pengguna. Proses ini memerlukan menyemak sama ada peranti mempunyai mesej luar talian apabila apl dimulakan dan menolaknya kepada pengguna satu demi satu. Logik ini dilaksanakan dalam kod berikut:

// 引入uni-app插件包
import { jpush } from '@uni/plugins'

// 在应用启动时检查离线消息
checkOfflineMessage()

/**
 * 应用启动时检查离线消息
 */
function checkOfflineMessage() {
  // 调用极光推送插件获取离线消息
  jpush.getOfflineMessage({
    success(res) {
      console.log('获取离线消息成功', res)
      // 将离线消息依次推送给用户
      res.forEach(message => pushMessageToUser(message))
    },
    fail(err) {
      console.error('获取离线消息失败', err)
    }
  })
}

/**
 * 推送离线消息给用户
 * @param {Object} message 
 */
function pushMessageToUser(message) {
  // 在这里将离线消息推送给用户
  // ...
}

Dalam kod di atas, kami mula-mula memanggil kaedah "checkOfflineMessage" apabila aplikasi mula menyemak sama ada peranti mempunyai mesej luar talian. Dalam kaedah ini, kami memanggil kaedah "getOfflineMessage" dalam pemalam jpush dalam apl uni untuk mendapatkan mesej luar talian. Objek "res" dalam fungsi panggil balik kejayaan mengandungi semua maklumat mesej luar talian. Di sini kita boleh menolak mesej luar talian kepada pengguna satu demi satu.

Ringkasan

Melalui pengenalan artikel ini, pembaca boleh mempelajari cara menyepadukan fungsi pemesejan luar talian Aurora dalam aplikasi uniapp. Khususnya, ia termasuk langkah berikut:

  1. Integrasi Aurora Push SDK
  2. Dayakan pilihan pemesejan luar talian dalam konsol tapak web rasmi Jiguang
  3. Dapatkan Aurora peranti apabila apl bermula Daftar ID dan cache dalam storan tempatan dan pelayan hujung belakang
  4. Semak peranti untuk mesej luar talian apabila apl dimulakan dan tolaknya kepada pengguna

Dengan di atas Dalam langkah ini, kami boleh melaksanakan fungsi pemesejan luar talian dalam aplikasi uniapp untuk memberikan pengguna pengalaman perkhidmatan yang lebih baik.

Atas ialah kandungan terperinci Bagaimanakah uniapp melaksanakan fungsi pemesejan luar talian?. 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