uni-app开发之thinkphp下的unipush全流程实现

本文档详述了如何在uni-app项目中集成个推SDK,通过ThinkPHP后端实现单推、多推和群推功能。首先介绍了流程,包括uni-app获取CID、服务器调用个推API。接着讲解了基础环境准备,如UNIPUSH配置、uni-app权限设置和获取应用配置。然后展示了APP端和后端PHP代码实现,强调了关键代码位置和注意事项。
摘要由CSDN通过智能技术生成

背景

有项目需要使用uniapp的unipush功能,由于第一次开发,网上查了好多教程,最终完美实现,这里记录一下流程。

相关文档

这里是一些官方的文档,有兴趣的可以去学习一下。

uni-app官方文档入口
https://uniapp.dcloud.io/api/plugins/push

uniPush官方使用指南
https://ask.dcloud.net.cn/article/35622

个推官方文档入口
https://docs.getui.com/

推送H5+API接口:
https://www.html5plus.org/doc/zh_cn/push.html

一、流程

1.UNIAPP已经集成了第三方应用个推SDK,APP运行后获取CID返回给服务器并保存;
2.服务器端调用个推的API进行消息推送,个推SDK将接收到的推送消息回调给App进行处理。

二、推送方式

个推提供JAVA、C#、PHP、Python等多种语言版本的服务端API SDK,可以和各种第三方应用服务器技术架构进行对接。为了最大程度提高消息推送性能,第三方开发者需要根据业务需求合理选择消息推送形式。本次记录是利用Thinkphp为后台框架的对接,实现单推、多推和群推的功能。详细更多介绍请参考官方文档:http://docs.getui.com/

三、基础环境准备

1. 平台配置
在这里插入图片描述

UNIPUSH开通申请,这部分不是难点参考官方教程在dcloud中配置各个厂商的api和secret。官方申请开通教程传送门:https://ask.dcloud.net.cn/article/35716
厂商推送设置

这里要说一下为啥要配置厂商呢?APP用户不可能实时在线,第三方的消息推送会被阻挡,最好的方式就是按照厂商的要求接入各个推送服务。这样做在app关闭的时候,可以通过厂商的服务器推送消息给手机通知系统。非常方便,这部分DCLOUD已经帮你做好了。你只需要注册下各个厂商的开发平台,填写到unipush的配置中就可以。
在这里插入图片描述

2. uni-app权限配置

Hbuilder的基座配置的信息都是dcloud的,所以用别人的app是没办法测试推送服务的。可以通过以下两种方式解决这个问题:

  • 云打包时打包成为自己的app后测试
  • 制作自定义的基座(很简单),这个基座的信息都是自己的,所以可以测试运行的时候选择自定制基座,或者直接云打包后的的apk安装到手机测试。

在这里插入图片描述

温馨提示: 可以先体验 uni push 后台界面推送(帮助理解推送的过程)

相要在APP中正确收到推送信息,还需要配置应用信息,android包名和应用的签名必须要和应用的一样不然收不到,签名生成可参考我的另外一片文章:
uniapp开发Android平台签名证书(.keystore)生成全流程
在这里插入图片描述
3、获取应用配置
uniPush配置好后查看应用的配置,包含appid、AppKey、MasterSecret等信息。
获取应用配置
记录应用的appid、AppKey、MasterSecret,会在服务端开发中用到。具体代码请继续往下阅读吧

四、APP端代码

注意:代码位置只能在app.vue的onLaunch中,其他地方可能会有问题。

//#ifdef APP-PLUS  
     /* 客户端的基本信息,可以获取到客户端的CID 测试的时候会用到*/
	 var info = plus.push.getClientInfo();
	 var client_id = info.clientid;
	 console.log( JSON.stringify( info ) );
	 console.log( 'CID:'+client_id  );
	 /* 使用:H5+的方式监听,实现推送 */  
	 plus.push.addEventListener("click", function(msg) {
     
		console.log("click:"+JSON.stringify(msg));  
		console.log(msg.payload);  
		console.log(JSON.stringify(msg));  
		//这里可以写跳转业务代码
		uni.navigateTo({
   
			url: 'pages/user/user?参数'
		})
	 }, false);  
	 // 监听在线消息事件    
	 plus.push.addEventListener("receive", function(msg) {
      
		//这里可以写跳转业务代码
		console.log("recevice:"+JSON.stringify(msg))  
	 }, false);  
//#endif 

这里listener监听的两种事件:

  • “click”:从系统消息中心点击消息启动应用事件;
  • “receive”:应用从推送服务器接收到推送消息事件。

五、后端代码(PHP)

本实例中后端代码是整合Thinkphp+RestAPI V2的代码。

  1. 下载个推SDK,下载地址:https://docs.getui.com/getui/server/rest_v2/service_sdk/,SDK支持Composer项目依赖。

composer require getuilaboratory/getui-pushapi-php-client-v2

在这里插入图片描述
本次项目并未使用Composer依赖安装,下载安装到extend目录下。在extend目录下新建目录getui/sdk,并解压文件到getui/sdk目录下。

在这里插入图片描述

  1. 创建GeTui.php文件
    在目录extend/getui/下创建GeTui.php文件,代码如下:
<?php
namespace getui;
use think\Loader;
class GeTui
{
   
    private $host = 'https://restapi.getui.com';

    //测试
    private $appkey = '';
    private $appid = '';
    private $mastersecret = '';
    private $token = null;
    private $taskId = null;
    private $api = null;
    private $pakename  ='你的APP包名';
	/**
     * 初始化
     */
    public function __construct($appid=null,$appkey=null,$mastersecret=null){
   
        $this->init($appid,$appkey,$mastersecret);
        $this->__loader();
    }
    /**
    * 加载SDK文件,只需引入GTClient.php文件即可
    * 实例化个推api接口
    */
    private function __loader()
    {
   
        require_once(dirname(__FILE__) . '/' . 'sdk/GTClient.php');
        $this->api = new \GTClient($this->host,$this->appkey,$this->appid,$this->mastersecret);
    }
    private function init($appid=null,$appkey
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
随着智能手机的快速普及,移动应用对于人们的生活和工作越来越重要。而uni-app和thinkphp是目前比较流行的移动应用开发技术。本文将深入探讨如何用uni-app和thinkphp实战社区交友类app和小程序的开发。 首先,uni-app是一种跨平台的开发技术,可以通过一套代码编写不同平台的应用程序,包括iOS、Android和Web应用。相比于传统的移动应用开发,uni-app可以更加高效和快速地开发应用程序,同时还具有比较好的用户体验和可扩展性。在实战社区交友类app和小程序的开发中,使用uni-app将更快速地开发出各个平台的应用,省去大量的开发时间和精力。 其次,thinkphp是一种PHP Web应用开发框架,具有高度模块化、可重用性、松耦合等特点,适用于快速开发和快速迭代的Web应用程序。在实战社区交友类app和小程序的开发中,thinkphp可以实现灵活的后台管理系统,为用户提供更加高效和便捷的交友体验,同时还能满足各种需求的排列组合。 最后,社区交友类app和小程序需要注意一些开发难点,例如安性和用户隐私保护,以及用户体验的提升。在使用uni-app和thinkphp开发时,需要注重这些方面,并进行细致的测试和优化,保证应用程序在各种细节场合下都能够得到良好的体验。 综上所述,使用uni-app和thinkphp实战社区交友类app和小程序的开发,能够更加高效和快速地实现我们的开发需求,同时也能够提高我们的开发效率和质量,是值得推广的新技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是农民IT

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值