サーチ…
備考
例と解説がある便利なAppleのマニュアル
URLスキームに基づいてアプリを開く
定義されたURLスキームのアプリケーションを開くにはtodolist://
:
目標-C
NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];
迅速
let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
UIApplication.shared().openURL(url)
}
HTML
<a href="todolist://there/is/something/to/do">New SMS Message</a>
注:リンクが開かれているかどうかを確認すると、ユーザーに適切なメッセージを表示することができます。これは、
canOpenURL:
メソッドを使用して行うことができます。
自分のアプリにURLスキームを追加する
MyTasks
というアプリで作業していて、インバウンドURLにタイトルと本文の新しいタスクを作成させたいとします。設計しているURLは次のようになります。
mytasks://create?title=hello&body=world
(もちろん、 text
とbody
パラメータは、私たちが作成している私たちのタスクを埋めるために使われます!)
このURLスキームをプロジェクトに追加するための大きな手順は次のとおりです。
- アプリの
Info.plist
ファイルにURLスキームを登録すると、システムはURLをアプリにいつルーティングするかを知ることができます。 - 受信URLを受け入れて
UIApplicationDelegate
する関数をUIApplicationDelegate
追加します。 - そのURLが開かれたときにどのようなタスクを実行してもかまいません。
ステップ1:Info.plistにURLスキームを登録する:
まず、Info.plistファイルに "URL Types"エントリを追加する必要があります。ここで(+)ボタンをクリックしてください:
...使用するURLスキームだけでなく、アプリの一意のIDを入力します。具体的にする! URLスキームを他のアプリの実装と矛盾させたくありません。短すぎるよりもここで長すぎる方が良い!
ステップ2:UIApplicationDelegateでURLを処理する
application:openURL:options:
をUIApplicationDelegate
に実装する必要がありapplication:openURL:options:
。入ってくるURL
を調べ、私たちが取ることができる行動があるかどうかを確認します。
1つの実装はこれです:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
if url.scheme == "mytasks" && url.host == "create" {
let title = // get the title out of the URL's query using a method of your choice
let body = // get the title out of the URL's query using a method of your choice
self.rootViewController.createTaskWithTitle(title, body: body)
return true
}
return false
}
ステップ3:URLに応じてタスクを実行します。
ユーザーがURLを介してアプリを開くと、おそらく何か起こることが予想されます。おそらくそれがコンテンツの一部にナビゲートしているかもしれません。新しいアイテムを作成しているのかもしれません。この例では、アプリで新しいタスクを作成します!
上記のコードでは、 self.rootViewController.createTaskWithTitle(:body:)
呼び出しを見ることができますAppDelegate
関数を正しく実装するルートビューコントローラへのポインタがあると仮定すると、あなたはすべて設定されています!
あなたのアプリのディープリンクを設定する
あなたのアプリのディープリンクを設定するのは簡単です。アプリを開くために使う小さなURLが必要です。
手順に従って、アプリのディープリンクを設定します。
プロジェクトを作成し、DeepLinkPOCという名前をつけます。
プロジェクトのターゲットを選択します。
ターゲットを選択したら、[情報]タブを選択します。
URLタイプのオプションが表示されるまで下にスクロールします
'+'オプションをクリックします。
URLスキームには、アプリケーションを開くために使用する文字列を追加することができます.URLスキームでは「 DeepLinking 」を追加してください。
アプリを開くには、Safariに「DeepLinking://」と入力して起動します。ディープリンク文字列の形式は次のとおりです。
[scheme]://[host]/[path] --> DeepLinking://path/Page1
ここで、Scheme: "DeepLinking" Host: "path" path: "Page1"
注意 :ホストとパスを追加しなくてもアプリを起動するので、心配はありません。ホストやパスを追加して、アプリケーションの起動後に特定のページにリダイレクトすることもできます。
- 次に、以下のメソッドをあなたのappdelegateに追加します。
迅速:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
Objective-c:
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
上記のメソッドは、アプリケーションに設定したディープリンク文字列を使用してアプリが起動されるたびに呼び出されます。
- 今すぐあなたのアプリをインストールするが、ボタンを実行するに直接ジャンプする前に待っている。ちょうどスキームのアプリ起動メソッドの小さな変更を行います。
- スキームを選択して編集する
Runボタンをクリックします(didFinishLaunchingWithOptionsメソッドとopenURLメソッドにブレークポイントを追加して値を確認したい場合)
「DeepLinkPOC(またはあなたのアプリ名)が起動するのを待っている」というメッセージが表示されます。
Safariを開き、 " DeepLinking:// "を検索バーに入力すると、 "DeepLinkPOCでこのページを開く"というプロンプトが表示されます。開いてアプリケーションを起動します。
あなたのアプリのディープリンクを設定する方法を知りたいと思っています:)