h***@outlook.com
h***@outlook.com
  • 发布:2025-05-08 16:48
  • 更新:2025-05-08 16:48
  • 阅读:44

#插件讨论# 【 Android系统通知通知栏显示进度条 - s***@163.com 】关于如何设置通知栏点击回调的方法

分类:uni-app

方法一:用plus.push.createMessage,另外创建新的通知消息,push的点击回调参考官方文档即可。
推荐使用方法2
方法二:

1.修改setNotification函数加入两个参数notifyType , notifyParam 并添加点击事件

    NotificationCustom.prototype.setNotification = function(title, content, tickerTips,notifyId,notifyType = "none", notifyParam = "") {  
            if (this.mNotificationBuild == null ||  
                this.notifyManager == null) {  
                return;  
            }  
            notifyId = (typeof(notifyId)=='number')?notifyId:defaultNotifyId;  
            title = title || defaultTitle;  
            content = content || defaultContent;  
            tickerTips = tickerTips || defaultTicker;  
            this.mNotificationBuild.setContentTitle(title);  
            this.mNotificationBuild.setContentText(content);  
            this.mNotificationBuild.setTicker(tickerTips);  

                //添加点击事件---开始  
            var Intent = plus.android.importClass("android.content.Intent");  
        var PendingIntent = plus.android.importClass("android.app.PendingIntent");  
        var clickIntent = new Intent(main, main.getClass());  
        clickIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);  

        // 如果没有设置 notifyType,默认为 "none"  
        clickIntent.putExtra("notifyType", notifyType); // 设置传递的通知类型  
        clickIntent.putExtra("notifyParam", notifyParam); // 加入 notifyParam  
        console.log("notifyParam = " + notifyParam)  
        var pendingIntent = PendingIntent.getActivity(main, 0, clickIntent, PendingIntent.FLAG_UPDATE_CURRENT);  
        this.mNotificationBuild.setContentIntent(pendingIntent);  
              //添加点击事件---结束  

            //下载失败移除进度条  
            //this.mNotificationBuild.setProgress(0, 0, false);//移除进度条  

            var R = plus.android.importClass("android.R");  
            this.mNotificationBuild.setSmallIcon(R.drawable.stat_sys_download);  
            //默认有声音  
            this.mNotificationBuild.setDefaults(plus.android.importClass("android.app.Notification").DEFAULT_SOUND);  
            this.notifyManager.notify(notifyId, this.mNotificationBuild.build());  
        };  

2.APP.vue中设置监听事件,注意在onShow中调用:

checkNotifyType(options) {  
                const main = plus.android.runtimeMainActivity();  
                const Intent = plus.android.importClass("android.content.Intent");  
                const intent = main.getIntent();  
                const notifyType = intent.getStringExtra("notifyType");  

                if (notifyType) {  
                    console.log("从通知栏唤醒,notifyType = " + notifyType);  

                    // 处理跳转逻辑  
                    if (notifyType === "apk_update") {  

                        const notifyParam = intent.getStringExtra("notifyParam");  
                        console.log("filePath = " + filePath)  
                        // 防止下次重复触发,清掉 Extra 参数  
                        intent.removeExtra("notifyType");  
                        intent.removeExtra("notifyParam");  

                        // 执行解析notifyParam逻辑  
                        if (notifyParam) {  

                        }  
                    }  
                }  
            },  

3.创建通知:

// 设置通知信息把参数带上  
    NotificationUtil.setNotification(appName, msg, '点击查看详情', notifyId, ”apk_update“, notifyParam);

至此完成

2025-05-08 16:48 负责人:无 分享
已邀请:

要回复问题请先登录注册