
こんにちは、あまのじゃくなHikaruapp(@hikaruapp)です。
iOS10から新しくなった通知は、画像を添付することができるようになりました。
画像だけではなく映像も可能です。
これは、ちょっと世界が広がりますね!
では、早速いじり倒していきましょう!
もちろん、Objective-Cです(笑)
通常の画像無しの通知はこちらをどうぞ
実行環境
Xcode 8.1
iOS 10.1
Mac OS X 10.11.6
画像添付する方法は、UNNotificationAttachmentを使用する
iOSらしいというか、なんかこう考えられているなという感じで使い方は簡単です。
と、その前に、画像か映像を用意しておいてくださいね。
さて、いきましょうか、
基本形のコード
// image
NSURL *urlImage = [[NSBundle mainBundle] URLForResource:@"train" withExtension:@"mp4"];
UNNotificationAttachment *attachment = [UNNotificationAttachment attachmentWithIdentifier:@"com.hikaruapp.testNotifer"
URL:urlImage
options:nil
error:nil];
content.attachments = @[attachment];
このコードは、ファイル名:train.mp4の映像をUNNotificationAttachmentクラスで作っていきます。最後に、content.attachmentsにArray形式で代入してあげます。
Array形式なので間違いなく
全体のコード
- (void)notiferRequestFiveSecondWithImag {
UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
content.title = [NSString localizedUserNotificationStringForKey:@"Hello!"
arguments:nil];
content.body = [NSString localizedUserNotificationStringForKey:@"Yokohama Station"
arguments:nil];
content.subtitle = [NSString localizedUserNotificationStringForKey:@"Hello_message_with_image" arguments:nil];
content.sound = [UNNotificationSound defaultSound];
// image
NSURL *urlImage = [[NSBundle mainBundle] URLForResource:@"train" withExtension:@"mp4"];
UNNotificationAttachment *attachment = [UNNotificationAttachment attachmentWithIdentifier:@"com.hikaruapp.testNotifer"
URL:urlImage
options:nil
error:nil];
content.attachments = @[attachment];
// Deliver the notification in five seconds.
UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger
triggerWithTimeInterval:5
repeats:NO];
UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
content:content
trigger:trigger];
// Schedule the notification.
UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
[center addNotificationRequest:request
withCompletionHandler:^(NSError * _Nullable error) {
if (!error) {
NSLog(@"notifer with image request sucess");
}
}];
}
実行してみよう
5秒後に通知が来ました

右端に画像が表示されました。通知をした方向に引っ張ると

ムービーが表示されプレイを押すと再生されます。
これは、なかなか面白いものができそうです。
まとめ
どんどん面白くなっていくiOSな反面、覚えるのが大変になっていきますが、プログラマーとしても進化していきましょう!
GitHub
サンプルコード – github


コメント