jtshushu
jtshushu
  • 发布:2020-05-06 18:31
  • 更新:2021-09-05 17:43
  • 阅读:1798

求解在推送用透传消息-使用厂商通道(我用的是基座测试) 用手机测试出现了“clientId离线”问题

分类:uni-app

求解在推送的时候遇到问题
如下图
使用厂商通道
intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=包名/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标;S.content=测试内容;S.payload=test;end
为什么会出现
clientId离线

2020-05-06 18:31 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

用的HBuilder基座?
UniPush测试请打包生成自定义基座,并确保配置了厂商推送通道参数

  • jtshushu (作者)

    您好我是用 HBuilder基座 打宝测试的

    但是还是出现这个 clientId离线

    2020-05-06 20:47

  • jtshushu (作者)

    配置了厂商推送通道参数 我也配置了

    是不要只能用上线的app才可以

    在华为中心我是没有发布上线的app

    2020-05-06 20:48

  • DCloud_App_Array

    回复 jtshushu: clientid怎么获取的?将应用切换到前台确认是否还是提示离线?

    2020-05-11 12:19

  • jtshushu (作者)

    回复 DCloud_App_Array: 您好 谢谢我已经解决了通过程序实现了

    2020-05-11 14:18

c***@zeroteam.co

c***@zeroteam.co

你好,你是怎么实现的? 我也遇到你一样的问题

  • jtshushu (作者)

    离线

    不行

    要打包app测试

    2020-05-13 12:15

  • jtshushu (作者)

    测试只能 在推送预览那里点确定

    2020-05-13 12:16

  • jtshushu (作者)

    离线发送要打包的app才可以 华为在note版本 高的版本才行

    2020-05-13 12:17

  • c***@zeroteam.co

    回复 jtshushu: 使用自定义调试基座包不可以吗?

    2020-05-13 15:35

  • jtshushu (作者)

    回复 c***@zeroteam.co: 基座包离线收不到 只能打开app时才能收到

    2020-05-13 15:38

  • c***@zeroteam.co

    回复 jtshushu: 可是我打包了,也点确定了,点详情,成功下发数还是0阿

    2020-05-13 15:51

  • c***@zeroteam.co

    回复 jtshushu: 打开app就收到了,还有什么方法吗

    2020-05-13 17:41

  • jtshushu (作者)

    回复 c***@zeroteam.co:


    .厂商推送设置

    是华为还是什么

    AppID

    AppSecret

    PkgName


    都要有




    1. 有没 Android配置




    intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=包的唯一id/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标;S.content=测试内容;S.payload=test;end


    3.注意你的手机是华为高版本的

    2020-05-13 17:53

jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

.厂商推送设置
是华为还是什么
AppID
AppSecret
PkgName

都要有

  1. 有没 Android配置

intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=包的唯一id/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标;S.content=测试内容;S.payload=test;end

3.注意你的手机是华为高版本的

  • 易软

    请问 你正式推送的时候 ;S.payload 传的是什么啊

    2020-05-19 18:01

  • jtshushu (作者)

    回复 易软: 页面地址路径

    2020-05-20 12:32

  • 易软

    回复 jtshushu:字符串还是json 啊

    2020-05-20 13:41

  • jtshushu (作者)

    回复 易软: {"id":"1221","title":"测试一下vv","titelok":"我说明一下吧22","pagePath":"/pages/news/newsShow?id=71"}

    2020-05-20 14:38

  • 易软

    回复 jtshushu: 谢了

    2020-05-20 14:55

2***@qq.com

2***@qq.com - 前端程序员

你好我也遇到了这个问题,有看到你回复其他朋友说的,离线推送要打包app才可以,但是通过uniapp的自定义调试基座也是打包出去的,为什么还是会出现这个问题,难道说一定要云打包出来吗?

  • jtshushu (作者)

    是的要云打包测试

    2020-06-09 18:19

  • 2***@qq.com

    回复 jtshushu: 好的,已完成离线穿透,谢谢你的回复

    2020-06-10 11:31

  • 用户距离您30米

    回复 2***@qq.com: 你好,我的也出现这个问题了,杀死后台,还是不能通过厂商透传,只有打开app才可以,也配置了厂商,请问如何解决这个问题

    2020-07-17 09:06

  • n***@163.com

    回复 jtshushu: 你好云打包之后还是离线收不到消息点击推送时它显示的时发送成功,打开app就可以收的到

    2021-10-20 17:52

jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

const clientInfo = plus.push.getClientInfo()
console.log(clientInfo);
手机唯一id

jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

// /App.vue  
onLaunch: function() {  
// #ifdef APP-PLUS  
const clientInfo = plus.push.getClientInfo()  
console.log(clientInfo)  
// #endif  
}  

返回信息:  

{  
“id”: “unipush”  
, “token”: “54930dd7764bea63d367634169729xxx”  
, “clientid”: “54930dd7764bea63d367634169729xxx”  
, “appid”: “zQE9oBlmnF7SzV9bQPHxxx”  
, “appkey”: “ftjJNVX7Cu9iI8NEaMexxx”  
}  
jtshushu

jtshushu (作者) - 擅长:PHP-Thinkphp Python MUI UniApp Vuejs Bootstrap Jq Logo设计 广告设计 网页设计 有项目上需要联系我微信号:jtshushu66

// #ifdef APP-PLUS  

            //      uni.showModal({  
            //          title: '提示',  
            //          content: '您的用户在其它的app登录,如果有问题,请修改密码或重新登录!',  
            //          cancelText:"修改密码",  
            //          confirmText:"好的",                         
            //          success: function (res) {  
            //              if (res.confirm) {  
            //                  console.log('用户点击确定');  
            //              } else if (res.cancel) {  
            //                  console.log('用户点击取消');  
            //              }  
            //          }  
            //      });   

            const clientInfo = plus.push.getClientInfo()  
            console.log(clientInfo);  
            console.log(clientInfo.clientid);  
            //clientid  

            const _self = this;  
            const _handlePush_pash= function(message) {  
                // 通过 vuex 来同步页面的数据,仅做演示。    
                // 实际开发中,这里可能是跳转到某个页面等操作,请根据自身业务需求编写。         

                console.log(message);  
                _self.updatePushMessage(message);  
                console.log(message.payload);  

                // uni.showModal({  
                //  content:'duixiang1111=='+JSON.stringify(message)+"duixiang111",  
                //  showCancel: false  
                // });  

                var message_payload = JSON.parse(message.payload);  
                // uni.showModal({  
                //  content:'duixiang=='+JSON.stringify(message_payload)+"duixiang",  
                //  showCancel: false  
                // });  

                console.log(message_payload);  
                // var message_payload = JSON.stringify(payload);  
                //将对象转为字符串 JSON.stringify(jsObj)  
                //JSON字符串转为对象  JSON.parse(str);  
                console.log(message_payload.titelok);  
                console.log(message_payload.pagePath);  
                // uni.showModal({  
                //  content:'tiaozhuang=='+message_payload.pagePath+"tiaozhuang",  
                //  showCancel: false  
                // });  

                //这个很重要 因为加载要时间    定时器的重要性  

                setTimeout(() => {  
                       //这个 调整  
                       uni.navigateTo({  
                            url: message_payload.pagePath  
                       });  

                },1000);  
                //end 定时器  他有缓冲时间    

            };  

            plus.push.addEventListener('click', function(message) {  
                plus.nativeUI.toast('111push click');  
                console.log(message);  

                var message_payloadxxx = JSON.parse(message.payload);  

                //return;  
                _handlePush_pash(message);  

            });  

            plus.push.addEventListener('receive', function(message) {  
                plus.nativeUI.toast('push receive');  
                console.log(message);  
                //  var i=0;  
                var jsonData = JSON.stringify(message.payload) //字字符串 对项专字符串  
                var jsonData1 = JSON.stringify(message) //字字符串 对项专字符串  
                //var jsonData=JSON.parse(message.payload) //字字符串 对项专字符串  

//苹果解决  

                if (message.type == 'receive') {  
                    //plus.push.createMessage(message.content,message.payload,message.title);  
                    // plus.push.createMessage(message.content,jsonData,message.title);  
                    //  plus.push.createMessage(message.content,jsonData,message.title);  
                    // plus.push.createMessage(message.content,aaa);  
                    plus.push.createMessage(message.title, jsonData); //可以到页面  
                }  
                // return;  
                //_handlePush(message);  

            });  

     // #endif
1***@qq.com

1***@qq.com

您好 我用自定义基底测试离线穿透显示clientId离线,用云打包的app,还是显示clientId离线,后台配置的信息我也已经填写好了,实在是找不出啥问题了,能不能帮忙看一下是啥情况

1***@qq.com

1***@qq.com

您好 我用自定义基底测试离线穿透显示clientId离线,用云打包的app,还是显示clientId离线,后台配置的信息我也已经填写好了,实在是找不出啥问题了,能不能帮忙看一下是啥情况

1***@qq.com

1***@qq.com

我知道原因了 谢谢

  • 1***@qq.com

    您好,我跟您的情况一样,想请教一下您,怎么搞好的,我这边一直clientId离线

    2021-09-01 15:28

  • 1***@qq.com

    回复 1***@qq.com:需要打云打包之后,安装新的APP,之后在透传消息里直接发布,不要在预览cid哪里测试,直接发布就可以了

    2021-09-01 16:55

  • 1***@qq.com

    或者你直接发布到cid里面 ,不要在预览里面填写cid,我在预览cid里面测试是不可以的,一直是显示离线,但是发布到特定cid里面,离线是可以收到的,这有可能是官方一个问题吧

    2021-09-01 16:59

  • 1***@qq.com

    回复 1***@qq.com: 哦哦,感谢回复,我这边还是收不到离线消息,厂商是配置好的,不知道什么原因,只能打开app才有消息推送

    2021-09-01 17:21

  • 1***@qq.com

    回复 1***@qq.com: 具体是哪个平台方便说一下吗

    2021-09-01 17:24

  • 1***@qq.com

    回复 1***@qq.com: 华为的,我只是创建了个应用,然后在uni官网把华为厂商配置需要的东西填写了,不知道是不是华为这边还需要做什么操作之类的才可以使用离线推送

    2021-09-01 19:05

  • 1***@qq.com

    回复 1***@qq.com: 那你需要检查一下华为后台是不是把 SHA256证书指纹 这个配置了 需要配置这个,

    2021-09-02 17:01

  • 1***@qq.com

    你可以先在华为透传信息测试,如果可以收到,那就是unipush问题,如果收不到就是华为配置问题

    2021-09-02 17:03

1***@qq.com

1***@qq.com

您好 我还有一个问题 在uni push里面发布透传信息的时候 intent后面带了一个示例:intent:#Intent;component=你的包名/你要打开的 activity 全路径;S.parm1=value1;S.parm2=value2;end 其中【你的包名/你要打开的 activity 全路径 】这部分是可以直接放打开的地址吗,就比如说点击信息提醒之后,我想让页面跳转到优惠券页面(页面路径的话是:pages/xinren/xinren.vue),这个部分可以直接写【包名/pages/xinren/xinren】吗,但是我放地址跳转一直是跳转不了,我现在是在APP.vue中onLaunch中添加的一个监控跳转,但是这个的话是需要每次重新打包之后才可以使用,还需要应用商店提交进行审核啥的,每次都是很麻烦,我意思是直接可以在unipush页面直接放一个跳转的地址,让他直接跳转,在网上搜索很多材料,都没有这部分的具体介绍,有的话也只是一笔带过,麻烦大佬帮小弟解答一下,感激不尽

初学者123

初学者123 - 80后IT男

我也遇到这个问题。重新打正式包,这个问题就解决了

该问题目前已经被锁定, 无法添加新回复