サーチ…


備考

例と解説がある便利な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

(もちろん、 textbodyパラメータは、私たちが作成している私たちのタスクを埋めるために使われます!)

このURLスキームをプロジェクトに追加するための大きな手順は次のとおりです。

  1. アプリのInfo.plistファイルにURLスキームを登録すると、システムはURLをアプリにいつルーティングするかを知ることができます。
  2. 受信URLを受け入れてUIApplicationDelegateする関数をUIApplicationDelegate追加します。
  3. そのURLが開かれたときにどのようなタスクを実行してもかまいません。

ステップ1:Info.plistにURLスキームを登録する:

まず、Info.plistファイルに "URL Types"エントリを追加する必要があります。ここで(+)ボタンをクリックしてください: Info.plistに新しい行を追加する

...使用するURLスキームだけでなく、アプリの一意のIDを入力します。具体的にする! URLスキームを他のアプリの実装と矛盾させたくありません。短すぎるよりもここで長すぎる方が良い! Info.plistの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が必要です。

手順に従って、アプリのディープリンクを設定します。

  1. プロジェクトを作成し、DeepLinkPOCという名前をつけます。

  2. プロジェクトのターゲットを選択します。

  3. ターゲットを選択したら、[情報]タブを選択します。

  4. URLタイプのオプションが表示されるまで下にスクロールします

  5. '+'オプションをクリックします。

  6. URLスキームには、アプリケーションを開くために使用する文字列を追加することができます.URLスキームでは「 DeepLinking 」を追加してください。

アプリを開くには、Safariに「DeepLinking://」と入力して起動します。ディープリンク文字列の形式は次のとおりです。

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

ここで、Scheme: "DeepLinking" Host: "path" path: "Page1"

注意 :ホストとパスを追加しなくてもアプリを起動するので、心配はありません。ホストやパスを追加して、アプリケーションの起動後に特定のページにリダイレクトすることもできます。

  1. 次に、以下のメソッドをあなたの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

上記のメソッドは、アプリケーションに設定したディープリンク文字列を使用してアプリが起動されるたびに呼び出されます。

  1. 今すぐあなたのアプリをインストールするが、ボタンを実行するに直接ジャンプする前に待っている。ちょうどスキームのアプリ起動メソッドの小さな変更を行います。
  • スキームを選択して編集する

ここに画像の説明を入力

  • 起動タイプを変更して閉じるここに画像の説明を入力
  1. Runボタンをクリックします(didFinishLaunchingWithOptionsメソッドとopenURLメソッドにブレークポイントを追加して値を確認したい場合)

  2. 「DeepLinkPOC(またはあなたのアプリ名)が起動するのを待っている」というメッセージが表示されます。

  3. Safariを開き、 " DeepLinking:// "を検索バーに入力すると、 "DeepLinkPOCでこのページを開く"というプロンプトが表示されます。開いてアプリケーションを起動します。

あなたのアプリのディープリンクを設定する方法を知りたいと思っています:)



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow