極光推送 推送處理總結 點選通知跳轉
當應用處於殺死狀態的時候,通過點選通知內容開啟APP 此時只需在 (位於後臺的時候點選通知內容不會走這個方法)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
]方法中判斷launchOptions是否為空
例如:
if (launchOptions !=nil) {// 不是空 就是推送點選 否則是圖示啟動
NSDictionary* remoteNotification = [launchOptionsobjectForKey
if ([[UIDevicecurrentDevice].systemVersionfloatValue] < 10.0) {
// iOS 10 不必走此方法[selfreciveNotification:remoteNotification];// 處理推送跳轉方法 詳見下方
}
}
#pragma mark iOS 6 以下收到推送
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary
[JPUSHServicehandleRemoteNotification:userInfo];
//pushDic = userInfo;
//[selfreciveNotificationAlertShow];
}
iOS 7 及以上10以下 收到推送及點選處理
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult
[JPUSHServicehandleRemoteNotification:userInfo];
if (application.applicationState == UIApplicationStateActive) {
// 如果是前臺執行出現彈窗
pushDic = userInfo;
// 前臺收到推送出現彈窗
[selfreciveNotificationAlertShow];
}else{
// 處於後臺的點選
[selfreciveNotification:userInfo];
}
completionHandler(UIBackgroundFetchResultNewData);
}
#pragma mark iOS 10 前臺收到通知(遠端推送和本地通知)
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification*)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
NSDictionary * userInfo = notification.request.content.userInfo;
if([notification.request.triggerisKindOfClass:[UNPushNotificationTriggerclass]]) {
/// iOS10處理遠端推送
[JPUSHServicehandleRemoteNotification:userInfo];
pushDic = userInfo;
// 前臺出彈窗提示
[self reciveNotificationAlertShow];
}else{
/// iOS10處理本地通知新增到通知欄
completionHandler(UNNotificationPresentationOptionBadge|UNNotificationPresentationOptionSound|UNNotificationPresentationOptionAlert);
}
// 需要執行這個方法,選擇是否提醒使用者,有Badge、Sound、Alert三種類型可以選擇設定
}
當APP 無論運行於後臺時,殺死 點選通知內容 開啟APP 會走這個方法 這要在這個方法中處理推送跳轉
iOS 10
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
// Required
NSDictionary * userInfo = response.notification.request.content.userInfo;
if([response.notification.request.triggerisKindOfClass:[UNPushNotificationTriggerclass]]) {
// 推送處理
[JPUSHServicehandleRemoteNotification:userInfo];
[selfreciveNotification:userInfo];
}else{
// 本地通知處理
}
completionHandler(); // 系統要求執行這個方法
}
3. APP運行於前臺的時候 需要獲取到推送內容,新增alertView// APP前臺彈窗提示
- (void )reciveNotificationAlertShow{
}
// APP殺死和後臺時 推送點選的跳轉處理- (void)reciveNotification:(NSDictionary *)pushdic{
// 點選推送之後廣告頁消失
HuoDongXiangQingViewController *hdxqVC = [[HuoDongXiangQingViewControlleralloc]init];
hdxqVC.hidesBottomBarWhenPushed =YES;
// 獲取當前停留的controler 進行push
[[selfcurrentViewController].navigationControllerpushViewController:hdxqVCanimated:YES];
}
#pragma mark 獲取當前的停留的VC用來實現任意頁面跳轉到指定頁面
- (UIViewController *)currentViewController{
UIViewController *currVC =nil;
UIViewController *Rootvc =self.window.rootViewController;
do{
if ([RootvcisKindOfClass:[UINavigationControllerclass]]) {
UINavigationController *nav = (UINavigationController *)Rootvc;
UIViewController *v = [nav.viewControllerslastObject];
currVC = v;
Rootvc = v.presentedViewController;
continue;
}elseif ([RootvcisKindOfClass:[UITabBarControllerclass]]){
UITabBarController *tabvc = (UITabBarController *)Rootvc;
currVC = tabvc;
Rootvc = [tabvc.viewControllersobjectAtIndex:tabvc.selectedIndex];
continue;
}
}while (Rootvc !=nil);
return currVC;
}
// APP 處於前臺的時候 推送通知點選建立alertview 點選跳轉方法和殺死 後臺執行狀態處理方法相同
- (void)reciveNotificationAlertShow{
UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"收到熱門推送"delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"檢視",nil];
[alert show];
}
獲取當前頁的方法也可以使用
- (UIViewController *)topVC:(UIViewController *)rootViewController{
if ([rootViewControllerisKindOfClass:[UITabBarControllerclass]]) {
UITabBarController *tab = (UITabBarController *)rootViewController;
return [selftopVC:tab.selectedViewController];
}elseif ([rootViewControllerisKindOfClass:[UINavigationControllerclass]]){UINavigationController *navc = (UINavigationController *)rootViewController;
return [selftopVC:navc.visibleViewController];
}elseif (rootViewController.presentedViewController){
UIViewController *pre = (UIViewController *)rootViewController.presentedViewController;
return [selftopVC:pre];
}else{
return rootViewController;
}
}
使用方法
UIViewController *vc = [selftopVC:[UIApplicationsharedApplication].keyWindow.rootViewController];
huodong.hidesBottomBarWhenPushed =YES;
[vc.navigationControllerpushViewController:huodonganimated:YES];
如果想實現模態效果 可以這樣寫TBMoiveViewController* currentView = [[TBMoiveViewControlleralloc]init];
// 建立導航欄
FLGNanViewController *nanVC = [[FLGNanViewControlleralloc]initWithRootViewController:currentView];
[self.window.rootViewControllerpresentViewController:nanVCanimated:YEScompletion:^{
}];
相關推薦
極光推送 推送處理總結 點選通知跳轉
當應用處於殺死狀態的時候,通過點選通知內容開啟APP 此時只需在 (位於後臺的時候點選通知內容不會走這個方法) - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption
前端外掛jquery.singlePageNav.min.js(導航點選選單跳轉與點選縮放選單摺疊按鈕緩衝效果外掛)
Bootstrap導航點選選單跳轉與點選縮放選單摺疊按鈕緩衝效果外掛jquery.singlePageNav.min.js 引入步驟: <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"><
Android中在fragment A裡面點選button跳轉到fragment B實現方法
方法一:直接getActivity,使用activity的fragmenttransation的replace方法替換 假設 class OneFragment extends Fragment{ private Button btn; @Override p
mpvue小程式裡面navigator點選不跳轉分析
1.一般這種情況是路徑沒有配置對,並且控制檯會報錯。2.你配置的路徑是tabbar裡定義的路徑,控制檯不報錯,但是也不會跳轉,這個時候如果你需要在導航和tabbar同時跳轉,需要加個屬性:需要注意的是,當你路徑變成非tabbar路徑時,需要把這個屬性去掉open-type="
layer彈出層的內容頁點選按鈕跳轉到新的頁面問題
在參與的一個專案中,有一個這樣的需求,匯入基礎資料成功後,預設彈出一個管理員登入頁,點選登入按鈕,需要跳到管理頁面。 匯入頁按鈕: <button type="button" id="start" class="layui-btn layui-b
js點選button跳轉到另一個頁面
點選按鈕怎麼跳轉到另外一個頁面呢?我們在網站製作中可能是需要的,因為有時我們需要做這樣的效果,尤其是將按鈕做成一個圖片,而點選圖片要跳轉到新的頁面時,怎麼做到呢? 這樣的效果可以:onclick="window.location='新頁面'" 來實現。 1.在原來的窗體中直接跳轉用 程式碼如下 window
點選連結跳轉到微信公眾號關注頁、微信關注連結
現在的公眾號引流一般都只能是 二維碼掃碼後關注,那麼通過點選一段網頁連結(圖片、或文字)怎麼引導使用者到公眾號關注頁呢? 一、首先開啟需要設定關注頁 的公眾號 此時的公眾號應該已經開啟 原創功能並發表有原創文章(登入微信公眾平臺設定) 二、進入公眾號的訊息列表頁,並進入任意一篇 原
微信點選連結跳轉外部瀏覽器開啟指定頁面的實現
隨著微信的越來越大眾化,微信的使用程度也越來越高。隨之,產生了一種新的推廣模式,即微信推廣。在這個微信的大平臺上會衍生出許許多多的推廣手段。而移動前端作為服務於手機使用者的手機網頁技術,也不可避免的加入進來。一些客戶不僅僅滿足於自己的網站可以在微信端上完美的展現出來(因為微信大面積遮蔽掉了眾多推廣營銷的域名)
安卓-通過點選Button跳轉不同的頁面。
最近在做一個安卓前端,剛開始接觸安卓(菜鳥一隻),啥都不懂,就通過記筆記的方法來了解安卓吧。在自己的xml的檔案中定義一個Button。如下:<Button android:id="@+id/btnOne" android
js實現『載入更多』功能例項 & 點選列表跳轉到詳情頁(tap)
寫在前面: 實際操作過程中,因為要用ajax去請求很多次資料,所以效能方面肯定會打折扣,拼接資料也是很麻煩,對於列表資料比較多的情況,寫起來不方便,也不好修改維護,不過功能實現很完整,我正在考慮去看看Vue裡面不用修改v-for嘗試著讓它在陣列上面做文章。 h5專案裡需要實現簡單的分頁功
echarts-點選圖例跳轉,但圖例不被關閉
myChart.setOption(option_science); var triggerAction = function(action, selected) {
div中新增多張img圖片,點選img跳轉頁面檢視大圖
var imgList = $.trim(that.find("td").eq(10).text()).split(";"); var myDiv = document.getElementById(
iOS UITextView 設定 NSLinkAttributeName 屬性,點選連結跳轉
@interface ViewController ()<UITextViewDelegate>- (void)viewDidLoad{ [super viewDidLoad]; NSMutableAttributedString *str = [[NSMutableAttribu
高德地圖點選氣泡跳轉到其它地圖
高德地圖的周邊搜尋,在點選Mark上的氣泡可以跳轉到手機中的地圖進行導航 @Override public void onInfoWindowClick(Marker marker) {
iOS 實現點選tabbar跳轉登入頁面
在APP的設計中常常有需要點選tabbar直接進行跳轉登入的操作。下面說一下需要怎麼來實現這個操作。 程式碼。 (BOOL)tabBarController:(UITabBarController )tabBarController should
Android點選按鈕跳轉到網頁
<Button android:layout_width="60dp" android:layout_height="40dp" android:onClick="tiaowan" /> public void tia
封裝List,點選按鈕跳轉傳值並優化
package com.example.yinchenglong1229; import android.annotation.SuppressLint; import android.content.Intent; import android.os.AsyncTask; import android.s
在一個頁面點選連結跳轉至另一個頁面的選項卡tab中
頁面A <body> <a href="選項卡-練習.html?type=1">1111111111</a> <a href="選項卡-練習.html?type=2">2222222222</a>
Vue2.5.x --- 點選路由跳轉後重新整理頁面仍然停留在之前的路由頁面解決方法
如果想重新整理的時候是重新整理點選的頁面 可以用快取記錄重新整理前的路由地址 然後重新整理時設定預設地址為快取的路由地址即可 處理前的情況,頁面重新整理也會停留在之前跳轉的路由頁面: 處
jquery的$.alerts.alert怎麼實現點選後跳轉頁面
jquery外掛有個自帶的彈窗效果,若要實現關閉彈窗後跳轉頁面或重新整理頁面,可進行如下操作 $.alerts.alert("這裡是顯示的內容",“這裡是標題”,"這裡是點選處的文字",function(){這裡進行點選後的操作}); 示例如下 $.alerts.ale