日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

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

欄目分類
最近更新