最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS推送增加右側顯示圖Service Extension

 更新時間:2022年10月11日 16:48:46   作者:ZouNiMei  
這篇文章主要為大家介紹了iOS推送增加右側顯示圖Service Extension,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

本Demo推送使用的是極光推送(換成其他推送改動也不大)極光文檔 極光Demo

先看下效果圖,在系統(tǒng)的推送彈窗右側增加了一個圖片

工程配置(一)

  • 首先需要一個已經(jīng)集成了極光推送,并且可以正常接收推送的工程(參考極光文檔again);
  • 配置主Target,如下截圖所示,勾選主Target的Background Modes;

  • 創(chuàng)建Service Extension,看下面的三圖;

  • 給創(chuàng)建好的PushExtension(子Target)配置Push Notifications,這一步操作就和主Target的配置推送一樣;

工程配置(二)集成JPushExtension

這一步是按照需求可選的,引入JPushExtension的目的是為了極光推送做統(tǒng)計

處理推送顯示的內容

這是配置好的工程目錄,多了一個PushExtention文件夾

NotificationService.m文件的內容改為如下

#import "NotificationService.h"
#import "JPushNotificationExtensionService.h"
@interface NotificationService ()
@property (nonatomic, strong) void (^contentHandler)(UNNotificationContent *contentToDeliver);
@property (nonatomic, strong) UNMutableNotificationContent *bestAttemptContent;
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {
    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];
    // 讀取圖片地址,并加載
    NSString *imgUrl = [NSString stringWithFormat:@"%@", self.bestAttemptContent.userInfo[@"imageUrl"]]; // ??圖片字段的key值需要跟后臺開發(fā)統(tǒng)一
    if (imgUrl) {
        NSURL *fileURL = [NSURL URLWithString:imgUrl];
        [self downloadAndSave:fileURL handler:^(NSString *localPath) {
            if (localPath) {
                UNNotificationAttachment * attachment = [UNNotificationAttachment attachmentWithIdentifier:@"myAttachment" URL:[NSURL fileURLWithPath:localPath] options:nil error:nil];
                self.bestAttemptContent.attachments = @[attachment];
            }
            [self apnsDeliverWith:request];
        }];
    } else {
        [self apnsDeliverWith:request];
    }
}
- (void)serviceExtensionTimeWillExpire {
    self.contentHandler(self.bestAttemptContent);
}
#pragma mark - 私有方法
- (void)downloadAndSave:(NSURL *)fileURL handler:(void (^)(NSString *))handler {
    // 這里需要用系統(tǒng)網(wǎng)絡請求來下載圖片
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionDownloadTask *task = [session downloadTaskWithURL:fileURL completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        NSString *localPath = nil;
        if (!error) {
            // 臨時文件夾路徑,APP沒有運行時會自動清除圖片,不會占用內存
            NSString *localURL = [NSString stringWithFormat:@"%@/%@", NSTemporaryDirectory(), fileURL.lastPathComponent];
            if ([[NSFileManager defaultManager] moveItemAtPath:location.path toPath:localURL error:nil]) {
                localPath = localURL;
            }
        }
        handler(localPath);
    }];
    [task resume];
}
- (void)apnsDeliverWith:(UNNotificationRequest *)request {
    [JPushNotificationExtensionService jpushSetAppkey:@"本應用在極光平臺的AppKey"];
    [JPushNotificationExtensionService jpushReceiveNotificationRequest:request with:^ {
        NSLog(@"apns upload success");
        self.contentHandler(self.bestAttemptContent);
    }];
}
@end

注意事項

如果傳了圖片地址卻還不顯示,不要驚慌,先請確保圖片別太大,而且可以使用NSURLSession下載,否則就會出現(xiàn)圖片不顯示的問題。

以上就是iOS推送增加右側顯示圖Service Extension的詳細內容,更多關于iOS 推送增加右側顯示圖的資料請關注腳本之家其它相關文章!

相關文章

  • iOS橫屏彈鍵盤的高度錯誤異常解決

    iOS橫屏彈鍵盤的高度錯誤異常解決

    這篇文章主要給大家介紹了關于iOS橫屏彈鍵盤的高度錯誤異常解決的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 詳解iOS多線程GCD問題

    詳解iOS多線程GCD問題

    本篇文章主要介紹了iOS多線程GCD問題,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 詳解iOS應用開發(fā)中的ARC內存管理方式

    詳解iOS應用開發(fā)中的ARC內存管理方式

    這篇文章主要介紹了詳解iOS應用開發(fā)中的ARC內存管理方式,文中示例基于Objective-C語言,需要的朋友可以參考下
    2016-02-02
  • IOS 時間和時間戳之間轉化示例

    IOS 時間和時間戳之間轉化示例

    我們經(jīng)常從服務器后臺拿到時間戳的時間,以下代碼可以實現(xiàn)將時間戳轉為可讀的時間格式,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • ios用AFN進行文件上傳的示例代碼

    ios用AFN進行文件上傳的示例代碼

    本篇文章主要介紹了ios用AFN進行文件上傳的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 談談iOS中的幾種鎖

    談談iOS中的幾種鎖

    這篇文章主要介紹了談談iOS中的幾種鎖,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • iOS中監(jiān)聽UITextField值改變事件的方法實例

    iOS中監(jiān)聽UITextField值改變事件的方法實例

    UITextField 是一個用來處理文本輸入和現(xiàn)實的控件,在我們的開發(fā)當中也是經(jīng)常被用到。下面這篇文章主要給大家介紹了關于iOS中監(jiān)聽UITextField值改變事件的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-07-07
  • 深入淺析IOS中UIControl

    深入淺析IOS中UIControl

    UIControl,相信大家對其并不陌生吧,比如平常最常用的UIButton就是繼承自UIControl的。下面通過本篇文章給大家介紹ios中UIControl,感興趣的朋友一起學習吧
    2015-10-10
  • iOS獲取短信驗證碼倒計時的兩種實現(xiàn)方法

    iOS獲取短信驗證碼倒計時的兩種實現(xiàn)方法

    本篇文章主要介紹了iOS獲取短信驗證碼倒計時的兩種實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • iOS自定義相機功能

    iOS自定義相機功能

    這篇文章主要為大家詳細介紹了iOS自定義相機功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

南平市| 松溪县| 大埔县| 新和县| 积石山| 承德县| 宜君县| 东阿县| 梁平县| 永康市| 石嘴山市| 长葛市| 临沭县| 留坝县| 南开区| 邢台市| 宜都市| 海林市| 甘谷县| 依安县| 卢氏县| 安丘市| 松溪县| 湖口县| 甘德县| 安宁市| 开平市| 龙海市| 灯塔市| 福泉市| 德阳市| 通城县| 金昌市| 汾阳市| 疏附县| 贵溪市| 盐边县| 宜宾市| 洛川县| 绥中县| 绍兴县|