c5454
c5454
  • 发布:2022-06-07 11:05
  • 更新:2023-06-21 22:45
  • 阅读:486

【报Bug】安卓APP不在线,点击推送信息不触发 plus.push.addEventListener 函数

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win 11

HBuilderX类型: 正式

HBuilderX版本号: 3.4.7

手机系统: Android

手机系统版本号: Android 8.0

手机厂商: 华为

手机机型: 荣耀8c

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

plus.push.addEventListener('click', (msg) => {

                if(plus.os.name=='iOS'){  
                var payload = msg.payload;  

                var UIApplication = plus.ios.import("UIApplication");  
                var app = UIApplication.sharedApplication();  
                //获取应用图标的数量  
                var oldNum = app.applicationIconBadgeNumber();  
                if (oldNum != 0) {  
                    //console.log('角标取值', oldNum);  
                    // console.log("oldNum:"+oldNum);  
                    var newNum = oldNum - 1;  
                    //设置应用图标的数量  
                    plus.runtime.setBadgeNumber(newNum);  
                    //导入个推原生类  
                    var GeTuiSdk = plus.ios.importClass('GeTuiSdk');  
                    GeTuiSdk.setBadge(newNum);  
                    console.log(payload);  
                    if (payload.type == "tab") { //跳转订单页面  

                        uni.switchTab({  
                            url:'/'+payload.path,  
                            complete:(res)=>{  
                                console.log(JSON.stringify(res));  
                            }  
                        });  
                    }else if (payload.type == "nav") { //跳转订单页面  

                        uni.navigateTo({  
                            url:'/'+payload.path,  
                            complete:(res)=>{  
                                console.log(JSON.stringify(res));  
                            }  
                        });  
                    }  
                }  

                }else{  
                    console.log(6666);  
                    let routes = getCurrentPages(); // 获取当前打开过的页面路由数组  
                    let curRoute = routes[routes.length - 1].route //获取当前页面路由  
                    var luyou_num=curRoute.split('/').length-1;  
                    var qpath='';  
                    for(var i=0;i<luyou_num;i++){  
                        qpath=qpath+'../';  
                    }  
                    console.log(qpath);  
                    var args = plus.runtime.arguments;  
                console.log(args);  
                var data = JSON.parse(args);  
                var payload = JSON.parse(data.payload);  
                plus.runtime.setBadgeNumber(0);    
                console.log(payload);  

                if (payload.type == "tab") { //跳转订单页面  

                    uni.switchTab({  
                        url:qpath+payload.path,  
                        complete:(res)=>{  
                            console.log(JSON.stringify(res));  
                        }  
                    });  
                }else if (payload.type == "nav") { //跳转订单页面  

                    uni.navigateTo({  
                        url:qpath+payload.path,  
                        complete:(res)=>{  
                            console.log(JSON.stringify(res));  
                        }  
                    });  
                }  
                }  

            });

操作步骤:

安卓应用不在线点击推送信息启动APP无法跳转页面,但安卓应用在线时,页面可以跳转,在监听函数反复调试输出打印完全没有输出打印数据

预期结果:

安卓应用不在线点击推送信息启动APP无法跳转页面,但安卓应用在线时,页面可以跳转,在监听函数反复调试输出打印完全没有输出打印数据

实际结果:

安卓应用不在线点击推送信息启动APP无法跳转页面,但安卓应用在线时,页面可以跳转,在监听函数反复调试输出打印完全没有输出打印数据

bug描述:

plus.push.addEventListener

控制台打印调试无法进入该监听

2022-06-07 11:05 负责人:DCloud_Android_THB 分享
已邀请:
DCloud_Android_THB

DCloud_Android_THB

您发送推送消息的时候,传了intent字段了么?

  • c5454 (作者)

    是的

    2022-06-07 15:39

  • c5454 (作者)

    $androidnotif->setClickType('intent');//intent:打开应用内特定页面(厂商都支持),url:打开网页地址(厂商都支持,华为要求https协议),startapp:打开应用首页(厂商都支持)

    //$androidnotif->setUrl('https://shfw:pages/index/index');//打开应用地址 setClickType为url必填

    $androidnotif->setIntent('intent:#Intent;action=android.intent.action.oppopush;launchFlags=0x14000000;component=uni.UNIF0F5EEF/io.dcloud.PandoraEntry;S.title='.$this->title.';S.content='.$this->body.';S.payload='. $this->path .';end');//打开应用地址 setClickType为intent必填

    2022-06-07 15:49

  • c5454 (作者)

    离线推送不用这个intent那用那个呢?

    2022-06-07 15:50

  • DCloud_Android_THB

    回复 c***@126.com: intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=io.dcloud.HBuilder/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end


    注意事项:


    component=io.dcloud.HBuilder/io.dcloud.PandoraEntry,其中 io.dcloud.HBuilder 为 App 包名,需要替换为自己 App 的包名,与 App 云端打包界面设置的 Android 包名一致。

    2022-06-07 15:51

  • DCloud_Android_THB

    回复 c***@126.com: 你发的intent内容没有 UP-OL-SU标志。

    2022-06-07 15:55

  • zhaoyu2020

    回复 DCloud_Android_THB: 安卓加了标志后 能触发click了 但是苹果还是不行 苹果也要加什么标识吗 我是在dcloud的后端 做的调试

    2022-08-22 11:17

嘎力巴霸

嘎力巴霸

请问最后怎么解决的 我这个APP也是IOS能触发 安卓无法触发

bwj2022

bwj2022 - www

我估计安卓性能太差,需要设置延时调用才行

要回复问题请先登录注册