王彦祖
王彦祖
  • 发布:2019-10-10 10:46
  • 更新:2019-10-16 17:26
  • 阅读:2001

解决Android8.0及以上版本系统通知消息无法显示问题

分类:Native.js

新手代码写的有点乱。。 之前借鉴了几位大神的代码,在8.0之前非常好用,最近需要投标突然发现自己手机收不到推送消息了,折磨了我一天啊。。
话不多说,放代码,希望对大家有用!!!!

                   var mNotification;  
            var SystemVersion = plus.os.version;    
            var firstVersionNumber = Number(SystemVersion.split('.')[0]);    
            var main = plus.android.runtimeMainActivity();  
            var Context = plus.android.importClass("android.content.Context");  
            var Noti = plus.android.importClass("android.app.Notification");  
            var NotificationManager = plus.android.importClass("android.app.NotificationManager");  
            var nm = main.getSystemService(Context.NOTIFICATION_SERVICE);  

            //var Notification = plus.android.importClass("android.app.Notification");  
            var Intent = plus.android.importClass("android.content.Intent");  
            var PendingIntent = plus.android.importClass("android.app.PendingIntent");  
            var intent = new Intent(main, main.getClass());  
            var pendingIntent = PendingIntent.getActivity(main, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);  
            var r = plus.android.importClass("android.R");  
            if (firstVersionNumber>=8) {  
                Notification = plus.android.importClass("android.support.v4.app.NotificationCompat");    
            } else {    
                Notification = plus.android.importClass("android.app.Notification");    
            }    
            if(firstVersionNumber>=8){//判断当前系统版本在8.0及以上    
                  var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');    
                  var channel = new NotificationChannel("s"+ NotifyID, "1", NotificationManager.IMPORTANCE_HIGH);    
                  nm.createNotificationChannel(channel);  
                  mNotification = new Notification.Builder(main,"s" +NotifyID);    
            }else{    
                  //设为true代表常驻状态栏    
                  //this.mNotificationBuild.setNumber(defaultNumber)   
                  mNotification = new Notification.Builder(main);    
            }    

            mNotification.setContentTitle("xxxxx")  
            mNotification.setContentText(str);  
            mNotification.setSubText(str1);  
            mNotification.setSmallIcon(17301620);  
            mNotification.setDefaults(Noti.DEFAULT_VIBRATE);//声音、闪灯、震动效果,可叠加  
            mNotification.setPriority(Noti.PRIORITY_DEFAULT);//通知优先级  
            mNotification.flags=Notification.FLAG_ONLY_ALERT_ONCE;//发起通知时震动  
            mNotification.setContentIntent(pendingIntent);  
            var mNb = mNotification.build();  
            if(firstVersionNumber>=8){//判断当前系统版本在8.0及以上  
                  nm.notify("s"+ NotifyID,NotifyID, mNb);  
            }else{    
                  nm.notify(NotifyID, mNb);  
            }    
            void plus.device.beep(5);  
            plus.device.vibrate(300);  
            NotifyID  ;  
2 关注 分享
9***@qq.com a***@qq.com

要回复文章请先登录注册

9***@qq.com

9***@qq.com

太感谢了,解决了我这几天的一个大问题了
2019-10-16 17:26
g***@126.com

g***@126.com

找到问题所在了,new NotificationChannel第一个参数需要时字符串。。。。。。
2019-10-11 17:11
g***@126.com

g***@126.com

qq:2822403570 有时间的话给指点指点呗
2019-10-11 17:05
g***@126.com

g***@126.com

nm.createNotificationChannel(channel); 这一行不报错吗兄弟?
2019-10-11 17:02