IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP使用UniPush推送 -> 正文阅读

[PHP知识库]PHP使用UniPush推送

 UniPush推送 除了通知、透传消息可以正常发送以外。无法解决华为角标的问题、用uni-app 推荐用个推解决
//推送 unipush  推送
    function send_push($type, $data, $uid,$ring,$vibrate) //透传消息不能空
    {
       vendor('UniPush.Push');
       $result = new \Push();
       return $result->jpush($type, $data, $uid,$ring,$vibrate);
    }

//push.php 文件
require_once __DIR__ . '/IGt.Push.php';
define('HOST','http://sdk.open.api.igexin.com/apiex.htm');
define('APPKEY', 'xxxxx');
define('APPID','xxxxxxx');
define('MASTERSECRET','xxxxxxx');
define('DEVICETOKEN','');
class Push{
    public function jpush($type,$data,$uid='',$ring,$vibrate){
            $igt = new \IGeTui(HOST, APPKEY, MASTERSECRET);
            
            switch ($type) {
                case 1:
                    $template = $this->IGtNotificationTemplateDemo($data['title'],$data['content'],$ring,$vibrate);//单个通知栏广播(点击进入)
                    break;
                case 2:
                    $template = $this->IGtTransmissionTemplateDemo($data);//单个透传功能模板(内部消息) 
                    break;
                case 3:
                    $template = $this->IGtNotificationTemplateDemo($data['title'],$data['content'],$ring,$vibrate);//整个应用推送
                    break;  
                default:
                    # code...
                    break;
            }
            //接收方
            if(3 == $type){
                //基于应用消息体
                $message = new \IGtAppMessage();
                $message->set_isOffline(true);
                $message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间单位为毫秒,例,两个小时离线为3600*1000*2
                $message->set_data($template);
                $appIdList=array(APPID);
                $message->set_appIdList($appIdList);
                $message->set_phoneTypeList(array('ANDROID','IOS'));

                return $igt->pushMessageToApp($message);
            }
            //个推信息体
            $message = new \IGtSingleMessage();
            $message->set_isOffline(false);//是否离线
            $message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
            $message->set_data($template);//设置推送消息类型
            $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息,1为wifi推送,0为不限制推送
            $target = new \IGtTarget();
            $target->set_appId(APPID);
            $target->set_clientId($uid);
            return $igt->pushMessageToSingle($message, $target);
        
    }

    //透传功能模板(内部消息)
    private function IGtTransmissionTemplateDemo($content)
    {
    
        $template = new \IGtTransmissionTemplate();
        $template->set_appId(APPID);//应用appid
        $template->set_appkey(APPKEY);//应用appkey
        $template->set_transmissionType(2);//透传消息类型
        $template->set_transmissionContent($content);//透传内容
        //$template->set_title($title);            //通知栏标题
        //ios
        //APN高级推送
        $apn = new \IGtAPNPayload();
        $alertmsg=new \DictionaryAlertMsg();
        $alertmsg->body="body";//通知栏内容
        $alertmsg->actionLocKey="ActionLockey";
        $alertmsg->locKey="LocKey";//通知栏内容
        $alertmsg->locArgs=array("locargs");
        $alertmsg->launchImage="launchimage";
    //        IOS8.2 支持
        $alertmsg->title="Title";//通知栏标题
        $alertmsg->titleLocKey="TitleLocKey";//通知栏标题
        $alertmsg->titleLocArgs=array("TitleLocArg");

        $apn->alertMsg=$alertmsg;
        $apn->badge=1;
        $apn->sound="";
        $apn->add_customMsg("payload","payload");
        $apn->contentAvailable=1;
        $apn->category="ACTIONABLE";
        $template->set_apnInfo($apn);
        return $template;
    }

    //通知栏显示,点击进入应用
    private function IGtNotificationTemplateDemo($title,$content,$ring = true,$vibrate = true){
        $template =  new \IGtNotificationTemplate();
        $template->set_appId(APPID);                      //应用appid
        $template->set_appkey(APPKEY);                    //应用appkey
        $template->set_transmissionType(2);               //透传消息类型
        //$template->set_transmissionContent($data);   //透传内容
        $template->set_title($title);                     //通知栏标题
        $template->set_text($content);        //通知栏内容
        $template->set_logo("logo.png");                  //通知栏logo
        $template->set_logoURL("http://wwww.igetui.com/logo.png"); //通知栏logo链接
        $template->set_isRing($ring);                      //是否响铃
        $template->set_isVibrate($vibrate);                   //是否震动
        $template->set_isClearable(true);                 //通知栏是否可清除
        //ios推送
        //$this->push_ios($title,$content);
        $apn = new \IGtAPNPayload();
        $alertmsg=new \DictionaryAlertMsg();
        $alertmsg->body=$content;//通知栏内容
        $alertmsg->actionLocKey="ActionLockey";
        $alertmsg->locKey="LocKey";//通知栏内容
        $alertmsg->locArgs=array("locargs");
        $alertmsg->launchImage="launchimage";
        //        IOS8.2 支持
        $alertmsg->title=$title;//通知栏标题
        $alertmsg->titleLocKey="TitleLocKey";//通知栏标题
        $alertmsg->titleLocArgs=array("TitleLocArg");

        $apn->alertMsg=$alertmsg;
        $apn->badge=1;
        $apn->sound="";
        $apn->add_customMsg("payload","payload");
        $apn->contentAvailable=1;//透传数据
        $apn->category="ACTIONABLE";
        $template->set_apnInfo($apn);
        return $template;
    }
        //ios推送
        public function push_ios($title,$content){
            $apn = new \IGtAPNPayload();
            $alertmsg=new \DictionaryAlertMsg();
            $template =  new \IGtNotificationTemplate();
            $alertmsg->body=$content;//通知栏内容
            $alertmsg->actionLocKey="ActionLockey";
            $alertmsg->locKey="LocKey";//通知栏内容
            $alertmsg->locArgs=array("locargs");
            $alertmsg->launchImage="launchimage";
        //        IOS8.2 支持
            $alertmsg->title=$title;//通知栏标题
            $alertmsg->titleLocKey="TitleLocKey";//通知栏标题
            $alertmsg->titleLocArgs=array("TitleLocArg");

            $apn->alertMsg=$alertmsg;
            $apn->badge=1;
            $apn->sound="";
            $apn->add_customMsg("payload","payload");
            $apn->contentAvailable=1;//透传数据
            $apn->category="ACTIONABLE";
            $template->set_apnInfo($apn);
        }

}

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:05:46  更:2021-09-14 13:05:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:23:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码