お知らせ詳細画面
受信したメッセージの詳細を表示するには PopinfoDetailViewController クラスを利用します。
このビューコントローラは表示する前に メッセージ ID の指定が必要です。
表示すると受信したメッセージの詳細が描画されます。
詳細な組み込み例は、SampleApp/SampleSwiftApp プロジェクト内の AppDelegate をご参照ください。
PopinfoDetailViewController *detailVC = [[PopinfoDetailViewController alloc] initWithNibName:@"PopinfoDetailViewController" bundle:[NSBundle mainBundle]];
detailVC.messageId = messageId;
[navigationController pushViewController:detailVC animated:NO];
let detailVC = PopinfoDetailViewController(nibName:"PopinfoDetailViewController", bundle:Bundle.main)
detailVC.messageId = messageId
navigationController.pushViewController(detailVC, animated: false)
レイアウトをカスタマイズする
描画に関するソースコードは PopinfoDetailViewController クラスで完結しています。
マージンや高さなどは PopinfoViewConfiguration クラスで定義されます。
この2つのクラスを修正していただくことにより、レイアウト上の様々なカスタマイズが可能です。
クラスは継承してお使いください
FANSHIP SDK が提供する標準 UI は、適宜改良されていく可能性があります。
App 側でお 知らせ詳細画面の UI をカスタマイズする場合は、PopinfoDetailViewController クラスを継承した独自クラス で行っていただくことをおすすめします。
Storyboard を利用する場合
Storyboard を用いて実装する場合 は、 Custom Class に PopinfoDetailViewController を指定することも可能ですが、上記と同じ理由から PopinfoDetailViewController クラスを継承した独自クラス を指定することをおすすめします。
URLを開くボタンを消す
リンク先 URL を指定せずに配信した際に、お知らせ詳細画面上で URL を開くボタンを表示したくない場合は、PopinfoDetailViewController.m の changeColorOfUrlButton メソッド内の「self.navigationItem.rightBarButtonItem = nil;」のコメントアウトを外してください。
URLを開くボタン押下時の処理をオーバライドする
PopinfoDetailViewController の didSelectOpenUrl メソッド内に独自処理を記述してください。
Swift で利用する場合はこのクラスを継承の上、メソッドをオーバーライドしてください。
- (void)didSelectOpenUrl
{
[super didSelectOpenUrl];
// URLを開くボタンが押下された際に行いたい処理をここに記述(任意)
}
override func didSelectOpenUrl() {
super.didSelectOpenUrl()
// URLを開くボタンが押下された際に行いたい処理をここに記述(任意)
}
お知らせ詳細画面を開かずにお知らせ詳細内容を取得する
メッセージ 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))")