2016-11-25 5 views
0

私はXamarinフォームの別のアプリケーションからアプリを開く必要があります。私はそれが私が欲しいことをすることができると言うリベットコンポーネントを発見したが、私はそれが参照するURLがわからない。XamarinはRivetsコンポーネントを使用して別のアプリケーションを開きます

私はhttp://applinks.org/documentation/を見ましたが、私はモバイルプラットフォームごとに開かれたURLを書いています。 私の質問は、iOSの場合、探しているURLは何ですか?私はitun​​esのアプリへのリンクだと思った。すべてのリンクは、アプリストアでアプリストアを開きますが、アプリが既にインストールされている場合は起動しません。

+0

どのアプリを起動しようとしていますか? iOSにはリベットなしでアプリを起動するための特定の方法があります私は彼らと少し経験があります。 – hvaughan3

+0

iPhone用Blue Diamond Partyと呼ばれるゲーム – jbassking10

答えて

1

あなたはブルーダイヤモンド党アプリのコードを管理しているか、あなたはブルーダイヤモンド党アプリは(あなたがについてを読んでいるカスタムURLです)は、1つの以上のカスタムアプリのリンクを登録したことを知っている場合を除き、あなたは意志iOS上でアプリから開くことはできません。これは、リベッツで動作させる唯一の方法です。 Blue Diamond Partyアプリは、応答する種類のカスタムURIを登録する必要があります。その後、Rivetsを使用して、アプリケーションはそのカスタムURIを呼び出します。

*編集:他のアプリからアプリへのリンクを処理するためのアプリを取得するには、XamarinのGetting Started Guide(着信アプリのリンクナビゲーション見出しの取り扱いの下で見て)に向かうことができます。

AndroidがiOS版とは異なることを行いますしかし、iOS用:

のInfo.plistでカスタムURIを登録します(それが正しいXMLですが、それはそのようなものであれば、画像のリンクをチェックアウトするかわからない)(CFBundleURLNamestringがありますあなたのスキームのカスタム名を指定し、次にmultiplをリストすることができます名前の下に、アレイ内の電子スキーム):

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
    <key>CFBundleURLName</key> 
    <string>com.bluediamondparty.schemes</string> 
    <key>CFBundleURLSchemes</key> 
    <array> 
     <string>bluediamondparty</string> 
    </array> 
    </dict> 
</array> 

上記のXMLは、に対応するアプリのあなたのURIスキームとしてbluediamondpartyを登録します。

カスタムスキームのURIが実行されたときにアプリが何かを実行するようにするには、AppDelegateOpenUrlをオーバーライドします(カスタムURIスキームの後に、たとえば特定のあなたのアプリ内のページまたはアイテム):

UIApplication.SharedApplication.OpenUrl(new NSUrl("bluediamondparty://play?game_mode_type=survival")); 

最後に、あなたが使用しているのどれもが実際に必要としないことに気づくかもしれません:あなたの第二のアプリからURIを開くには

public override bool OpenUrl (UIApplication app, NSUrl url, string srcApp, NSObject annotation) { 
    var rurl = new Rivets.AppLinkUrl (url.ToString()); 

    if (rurl.InputUrl.Host.Equals ("play")) { 
     var gameModeType = rurl.InputQueryParameters ["game_mode_type"]; 

     var c = new ProductViewController (gameModeType, rurl.Referrer); 
     navController.PushViewController (c, true); 
     return true; 
    } 

    return false; 
} 

、あなたはこのような何かを実行する可能性がありますリベットコンポーネント...そのコンポーネントは実際に私たちのために何をしていますか?何よりリベットが実際にあなたのアプリを実際のURL(例えばhttp://rdio.com/song/12345)に入れてリベットがそのページに行き、そのページのコンテンツがモバイルアプリにリンクされている方法を説明する特別なmetaタグを探しますユーザーがデバイスにインストールされている可能性があります。それは、ユーザーがそれをインストールしており、それが登録されている場合RDIOアプリを開こうとするために、正しいカスタムURIスキームを一覧表示することmetaタグで

<meta property="al:ios:url" content="rdio://song/12345" /> 

:だからrdio Webページ上で彼らは、次のメタタグを持っているかもしれませんカスタムrdio URIスキームを使用します。

あなたのアプリがURIスキームへの排他的な権利を持っていないことをもう一つ知っておく必要があります。したがって、別のアプリがあなたと同じURIスキームを選択し、ユーザーがその両方をインストールすると、インストールされる最後のアプリはURIスキームに応答します。

+0

Blue Diamond Partyを所有しています。カスタムリンクを作成するにはどうすればよいですか?これはどこかでXcodeで行われますか? – jbassking10

+0

@ jbassking10編集を確認します。 – hvaughan3

関連する問題