App.vue

  1. export default {
  2. onLaunch: function() {
  3. // #ifdef APP-PLUS
  4. const _self = this;
  5. const _handlePush = function(message) {
  6. // TODO
  7. };
  8. plus.push.addEventListener('click', _handlePush);
  9. plus.push.addEventListener('receive', _handlePush);
  10. // #endif
  11. }
  12. }

回调中的处理

  • 较为常见的场景是,收到 Push 消息后根据推送消息的信息,跳转到某个指定的页面。
  1. uni.navigateTo({
  2. url: message.payload.pagePath
  3. });
  • 如果某个数据信息,需要在推送成功后同步到其它页面,就需要用到 vuex 了。

vuex

/store/index.js

  1. export default new Vuex.Store({
  2. state: {
  3. pushMessage: {}
  4. },
  5. mutations: {
  6. updatePushMessage(state, message) {
  7. /**
  8. * 注意:这里为了方便预览查看效果,始终对 payload 做了序列化的处理。
  9. * 实际开发期中,请自行调整代码并注意发送的 payload 消息格式。
  10. */
  11. let payload = message.payload;
  12. if (typeof payload !== 'string') {
  13. message.payload = JSON.stringify(payload);
  14. }
  15. state.pushMessage = message || {};
  16. }
  17. }
  18. })

消息同步

在 App.vue 中更新推送消息

  1. export default {
  2. onLaunch() {
  3. // #ifdef APP-PLUS
  4. const _self = this;
  5. const _handlePush = function(message) {
  6. /**
  7. * 通过 vuex 来同步页面的数据,仅做演示。
  8. * 实际开发中,这里可能是跳转到某个页面等操作,请根据自身业务需求编写。
  9. */
  10. _self.updatePushMessage(message);
  11. };
  12. plus.push.addEventListener('click', function(message) {
  13. plus.nativeUI.toast('push click');
  14. _handlePush(message);
  15. });
  16. plus.push.addEventListener('receive', function(message) {
  17. plus.nativeUI.toast('push receive');
  18. _handlePush(message);
  19. });
  20. // #endif
  21. },
  22. methods: {
  23. ...mapMutations(['updatePushMessage'])
  24. }
  25. }

/pages/index/index.vue 页面渲染推送消息结果

  1. <view>
  2. <text class="title">推送消息 title:{{pushMessage.title}}</text>
  3. <text class="title">推送消息 content:{{pushMessage.content}}</text>
  4. <text class="title">推送消息 payload:{{pushMessage.payload}}</text>
  5. <text class="title">推送消息 aps:{{pushMessage.aps}}</text>
  6. </view>

测试发布

推送功能,涉及到第三方的 SDK 模块,因此与登录、分享等功能类似,需要打包后生效。

  • 阅读 UniPush开通指南 开通服务
  • manifest.json->App SDK配置,勾选“DCloud UniPush”。
  • manifest.json->App模块权限配置,勾选 Push(消息推送)。
  • 提交打包,自定义基座或正式打包均可。

参考文档

UniPush使用指南

UniPush开通指南

Push模块

【uniapp 开发】UniPush的更多相关文章

  1. uni-app开发踩坑记录

    大部分问题是我在h5端看不到而在android.iOS平台上暴露出来的,不包含小程序 1.:class="['defaultStyle', dynamicStyle]" 不支持直接 ...

  2. 使用uni-app开发微信小程序

    uni-app 开发微信小程序 前言 9月份,开始开发微信小程序,也曾调研过wepy/mpvue,考虑到后期跨端的需求,最终选择使用了uni-app,本文主要介绍如何使用uni-app搭建小程序项目, ...

  3. uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤

    uni-app开发微信小程序引入UI组件库(Vant-weapp)步骤 这里以vant-weapp为例 uni-app官方文档介绍引入组件的方法 1. 新建相关目录 根目录下创建 wxcomponen ...

  4. uniapp开发小程序

    uniapp开发小程序 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条 ...

  5. uni-app 开发随笔(踩坑记录)

    这里总结一些uni-app开发时我遇到的坑 uni-app获取元素高度及屏幕高度(uni-app不可使用document) uni.getSystemInfo({ success: function( ...

  6. 使用uView UI+UniApp开发微信小程序

    在前面随笔的介绍中,我们已经为各种框架,已经准备了Web API.Winform端.Bootstrap-Vue的公司动态网站前端.Vue&Element的管理前端等内容,基本都是基于Web A ...

  7. 使用uView UI+UniApp开发微信小程序--判断用户是否登录并跳转

    在<使用uView UI+UniApp开发微信小程序>的随笔中,介绍了基于uView UI+UniApp开发微信小程序的一些基础知识和准备工作,其中也大概介绍了一下基本的登录过程,本篇随笔 ...

  8. 使用uView UI+UniApp开发微信小程序--微信授权绑定和一键登录系统

    在前面随笔<使用uView UI+UniApp开发微信小程序>和<使用uView UI+UniApp开发微信小程序--判断用户是否登录并跳转>介绍了微信小程序的常规登录处理和验 ...

  9. uni-app开发小程序准备阶段

    1.软件安装 开始之前,开发者需先下载安装如下工具: HBuilderX:官方IDE下载地址 下面开发工具根据需求进行安装: 微信小程序开发工具安装 https://developers.weixin ...

随机推荐

  1. Linux环境下安装Java JDK

    一.说明 操作系统:CenterOS 7 工具:MobaXterm (根据个人喜好xshell等工具也行) 三.安装步骤 第一步:下载JDK 1.下载LInux环境下的jdk,请去 官网 中下载jdk ...

  2. kube-scheduler源码分析(3)-抢占调度分析

    kube-scheduler源码分析(3)-抢占调度分析 kube-scheduler简介 kube-scheduler组件是kubernetes中的核心组件之一,主要负责pod资源对象的调度工作,具 ...

  3. 二进制部署1.23.4版本k8s集群-1-系统安装及环境准备

    1. 致谢 这篇文章参考了老男孩王导的视频,在此表示感谢和致敬! 2. 安装CentOS操作系统 系统镜像:CentOS-7-x86_64-DVD-2009.iso 安装过程略. 3. 环境准备 3. ...

  4. .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM

    基于WPF开发界面的一个很大优势是可以方便地基于MVVM设计模式开发应用.本文从应用的角度基于MVVM实现参数化管材的创建界面. 1 MVVM MVVM是Model-View-ViewModel的简写 ...

  5. 3. Java基础

    3.Java基础[基于IDEA] 3.1.快捷键 psvm 创建主方法 sout 打印 ctrl+d 复制当前行到下一行 alt+ender 创建局部变量,类: 3.2.注释,标识符,关键字 注释 平 ...

  6. GO语言基础(结构+语法+类型+变量)

    GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量       Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...

  7. (acwing蓝桥杯c++AB组)2.1 二分

    二分与前缀和 文章目录 二分与前缀和 二分 整数二分核心思想 整数二分模板 整数二分步骤总结: 题目链接 实数二分核心思想: 题目链接 三分法思想: 二分 难点:二分的边界问题 整数二分核心思想 确定 ...

  8. .NET 6学习笔记(2)——通过Worker Service创建Windows Service

    通过Visual Studio中的Windows Service模板,我么可以创建.NET Framework版本的Windows Service,网络上对此已有详细且丰富的各路教程.但在我们升级到. ...

  9. 华夏基金X袋鼠云:基金业数字化转型,为什么说用户才是解题答案?

    "精准营销是以客户为中心,运用各种可利用的方式,在恰当的时间,以恰当的价格,通过恰当的渠道,向恰当的顾客提供恰当的产品." 这是学者许瑾在科特勒精准营销理论的基础上,从实践的角度对 ...

  10. Linux 环境Skywalking部署Elasticsearch

    一.环境准备 1.Java jdk 11+(安装教程可参考https://www.cnblogs.com/sportsky/p/15973713.html) 2.elasticsearch 二.环境搭 ...