このチュートリアルが完了すると、デモアプリケーションは二つの異なるURL(birdland://home と birdland://about)に対応できるようになります。birdland://homeは“home”の項目へ、 birdland://aboutは“about”の項目へそれぞれユーザーを誘導します。
Twitter カードを使用すると、コンテンツの一部をあなたのアプリケーションの特定のコンテンツにディープリンクすることができます。 この機能はとても強力なので、既にあなたのアプリをインストールしているユーザーの注目を引くことができます。 アプリケーションをインストールしていないユーザーの場合はAppストアへのリンクが表示されるので、簡単にアプリをダウンロードしてもらうことが抱きます。
前のチュートリアルでは、カスタム URL スキーム birdland://を iOS アプリケーションに追加しました。
このチュートリアルは前回の結果を基に作業をするので、以降を読み進める前にそれを完了させるようにしてください。
今回の例では、アプリケーション内の二つの項目“home” と“about”に直接アクセスできるようになります。 When combined with the custom scheme, this will create two ways to deep-link into the application: “birdland://home”, and “birdland://about”.
前回のチュートリアルで作成したプロジェクトを開きます。次に、アプリのUIApplicationDelegateの実装ファイル、“AppDelegate.m”を開きます。
We’re going to add a new method, openURL, that will handle URLs that are opened by our application.
-(BOOL) application: (UIApplication * ) application openURL: (NSURL * ) url sourceApplication: (NSString * ) sourceApplication annotation: (id) annotation {
if ([url.scheme isEqualToString: @"birdland"]) {
// check our `host` value to see what screen to display
//TODO you can also pass parameters - e.g. birdland://home?refer=twitter
if ([url.host isEqualToString: @"home"]) {
[self.viewController presentHomeScreen];
} else if ([url.host isEqualToString: @"about"]) {
[self.viewController presentAboutScreen];
} else {
NSLog(@"An unknown action was passed.");
}
} else {
NSLog(@"We were not opened with birdland.");
}
return NO;
}
次に、ビューコントローラーに簡単なメソッドを二つ追加します。ViewController.m を開いて以下コードを追加してください:
#import "ViewController.h"
#define THE_CREATOR @"Your-handle-here!"
@interface ViewController()
@property(nonatomic, strong) UILabel * viewLabel;
@end
@implementation ViewController - (void) viewDidLoad {
[super viewDidLoad];
self.viewLabel = [
[UILabel alloc] initWithFrame: self.view.frame
];
self.viewLabel.textAlignment = NSTextAlignmentCenter;
[self.view addSubview: self.viewLabel];
[self presentHomeScreen];
} - (void) presentHomeScreen {
NSLog(@"'Presenting' the home screen.");
self.viewLabel.text = @"Welcome home!";
} - (void) presentAboutScreen {
NSLog(@"'Presenting' the about screen");
self.viewLabel.text = [NSString stringWithFormat: @"About: created by %s", THE_CREATOR];
} - (void) didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end
You’re doing all the hard work here, so update the value defined for THE_CREATOR to be your Twitter handle.
では、ビューコントローラーのインラーフェースファイルである ViewController.hを更新します。以下のように変更してください:
#import <UIKit/UIKit.h> @interface ViewController : UIViewController - (void)presentHomeScreen; - (void)presentAboutScreen; @end
まず最初にアプリケーションをビルドして実行し、全て正しくコンパイルされてることを確認してください。以下のような画面が表示されるでしょう:
それでは、登録したURLスキームの動作を確認するためにモバイル Safariを起動します。 ホーム画面に戻るために、シミュレーター上で“Home”ボタンを押してください(もしくは commandキーとshiftキーとHキーを押してください)。 そして Safariを起動してください。
次に、Safariのアドレスバーに “birdland://about” と入力します。 Goボタンを押してください。about の項目が表示されるでしょう:
このチュートリアルの内容をあなたのアプリケーションに適用するには、まずディープリンクを使ってユーザーをアプリのどの階層に誘導するかを決める必要があります。 適用するにあたって、いくつの簡単な質問があります:
実際にあなたのアプリで実装する場合はここで説明しているよりももっと難しい作業になるでしょうが、全体的な流れは同じです。