3 お知らせ詳細画面のカスタマイズ
3.1 レイアウトのカスタマイズ
描画に関するソースコードは PopinfoDetailViewController クラスで完結しています。
マージンや高さなどは PopinfoViewConfiguration クラスで定義されます。
この2つのクラスを修正していただくことにより、レイアウト上の様々なカスタマイズが可能です。
3.2 URL を開くボタンを消したい
リンク先 URL を指定せずに配信した際に、お知らせ詳細画面上で URL を開くボタンを表示したくない場合は、PopinfoDetailViewController.m の changeColorOfUrlButton メソッド内の「self.navigationItem.rightBarButtonItem = nil;」のコメントアウトを外してください。
- (void)changeColorOfUrlButton
{
if (kIpadSplitViewUse && [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
return;
}
if (_message.piUrl && [_message.piUrl length] == 0) {
self.navigationItem.rightBarButtonItem.tintColor = [UIColor grayColor];
self.navigationItem.rightBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem = nil;
}
}
実装コストの問題から PopinfoDetailViewController.m を直接書き換えることが推奨されます。
変更を加えた場合、本 SDK のバージョンアップの際に再度変更が必要になる場合がありますのでご注意ください。
3.3 URL を開くボタンが押下されたタイミングで独自処理を行いたい
PopinfoDetailViewController の didSelectOpenUrl メソッド内に独自処理を記述してください。
Swift で利用する場合はこのクラスを継承の上、メソッドをオーバーライドしてください。
- (void)didSelectOpenUrl
{
[super didSelectOpenUrl];
// URLを開くボタンが押下された際に行いたい処理をここに記述(任意)
}
override func didSelectOpenUrl() {
super.didSelectOpenUrl()
// URLを開くボタンが押下された際に行いたい処理をここに記述(任意)
}
3.4 お知らせ詳細画面を開かずにお知らせ内容を取得したい
メッセージ ID を取得できるシーン(プッシュ通知受信時にコールされるデリゲートメソッド popinfoReceiver:didReceivePopinfoMessage:category:result: など)で、以下のように取得できます。
PopinfoDetailViewController *detailVC = [[PopinfoDetailViewController alloc] initWithNibName:@"PopinfoDetailViewController" bundle:[NSBundle mainBundle]];
detailVC.messageId = messageId;
NSLog(@"Title = %@", detailVC.message.piTitle);
NSLog(@"Contents = %@", detailVC.message.piContent);
NSLog(@"Url = %@", detailVC.message.piUrl);
let detailVC = PopinfoDetailViewController(nibName:"PopinfoDetailViewController", bundle:Bundle.main)
detailVC.messageId = messageId
print("Title = \(String(describing: detailVC.message.piTitle))")
print("Contents = \(String(describing: detailVC.message.piContent))")
print("Url = \(String(describing: detailVC.message.piUrl))")