学无先后,达者为师

网站首页 编程语言 正文

ionic集成极光推送之点击推送跳转到指定页面

作者:蝶儿漫步云端 更新时间: 2022-02-03 编程语言

ionic菜鸟一枚,很多东西都考慢慢摸索,极光推送是国内几家推送平台上集成第三方插件做的不错的。两年之前做Android开发的时候用过百度云推送,推送速度感觉没有现在极光快。官方社区提问基本都有官方技术人员回复,这点很好。因为互联网上参考资料实在不多,很多帖子不能解决到我的问题,也有可能是我太菜了,人家的思路没有启发到我吧。废话不多说了,跟新司机上车!

获取点击通知内容
event - jpush.openNotification
点击通知进入应用程序时会出发改事件。
代码示例
在你需要接收通知的的 js 文件中加入:
PS:我在这里是写入app.js文件的run方法里面$ionicPlatform.ready(function(){}的外面

document.addEventListener("jpush.openNotification", onOpenNotification, false);

onOpenNotification 需要这样写:

var alertContent;
if(device.platform == "Android") {
    alertContent = event.alert;
} else {
    alertContent = event.aps.alert;
}
alert("open Notificaiton:" + alertContent);

然后我得到下面的代码!

参照官方文档自己写出的代码

效果是点击推送没有任何反应,既不跳转到指定页面(跳转到了默认的首页)也不alert出信息。看来是根本没有进入事件监听里面。我当时想来想去也问了朋友也不知道是为啥。无奈只有去社区提问了。

后来改成这样:

 //点击推送跳转到相应页面
    document.addEventListener("jpush.openNotification", function(){
     // var alertContent;
      if(device.platform == "Android") {
        //alertContent = event.alert;
        $state.go("myOrderList");
      } else {
       // alertContent = event.aps.alert;
      }
      //alert("open Notificaiton:" + alertContent);
    }, false);

就可以了或者
这里写图片描述
再或者:
这里写图片描述

都是可以的。
原因是:我最之前那个错误写法里面再监听事件里面调用了onOpenNotification,而这个函数还没有被加载到,所以报错了也造成了启动白屏。
好弱智的错误!

加上一个登录判断,登录状态则直接跳转到指定页面否则跳转到登录界面!

/*
    需要登录才能显示的页面在加载前做登录判断,如果没有登录跳转到登录页面
     */
    var needLoginView = ["myOrderList"];//需要登录的页面state
    $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams, options){
      if(needLoginView.indexOf(toState.name)>=0&&!$rootScope.isLogin){//判断当前是否登录
        $state.go("login");//跳转到登录页
        event.preventDefault(); //阻止默认事件,即原本页面的加载
      }
    })

可以在var needLoginView = [“myOrderList”]的中括号里面加入所有需要判断登录状态额页面名称。

原文链接:https://blog.csdn.net/u011186751/article/details/52808077

栏目分类
最近更新