2017-04-20 26 views
1

私は、Xamarin iOSを使って自分のアプリにディープリンク機能を追加する必要があります。 マイinfo.plistは次のようになります。Deep-linking Xamarin iOS

<key>CFBundleURLTypes</key> 
<array> 
<dict> 
    <key>CFBundleURLSchemes</key> 
    <array> 
    <string>domine.somthing/index.html?UV</string> 
    </array> 
    <key>CFBundleURLTypes</key> 
    <string>com.domine.somthing/index.html?UV</string> 
</dict> 

私は、URLの "/" 文字による動作していないようです。 URL値をCFBundleURLTypesCFBundleURLSchemesと書くには、どうすればよいですか?

答えて

2

ディープリンクは、ユーザーをアプリケーションに直接返すことができます。 あなたのアプリケーションにURIサポートを追加した後、アプリケーションのスキーム名からなるURLをクリックするだけでアプリケーションが起動しますが、CFBundleURLSchemesCFBundleURLTypeswithの値が間違っているようです。

CFBundleURLName通常、これは アプリケーションのバンドルIDに相当します。詳細は、Apple's Development docを参照してください。

CFBundleURLSchemes - URLスキーム名を含む文字列の配列、通常は少なくともアプリケーションの名前(スペースなし) 。 注意して、これらの値がアプリケーション固有のものであることを確認してください。このサンプルでは

ルック:

<key>CFBundleURLTypes</key> 
    <array> 
    <dict> 
     <key>CFBundleURLName</key> 
     <string>com.yourcompany.yourapp</string> 
     <key>CFBundleURLSchemes</key> 
     <array> 
     <string>appname</string> 
     </array> 
    </dict> 
    </array> 

今すぐあなたのアプリを起動するデバイスにappname://からなるURLをクリックします。

アプリケーションの特定の部分にユーザーを送信する場合は、このURLに引数を追加して深いリンクを作成する必要があります。ユーザーがあなたのスキームを含むURL(appname://)をクリックすると、あなたのアプリケーションのデリゲートが呼び出される

appname://custompath?customquery=customvalue 

、あなたがスキーマを扱うAN正しいアプリルーティングを実行することができ、具体的方法OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation):ここでは、パスとクエリのサンプルですスキーマ引数(提供されている場合)に基づいています。

+0

メールにはリンクが1つしかありません.Windowsアプリとモバイルサイトのような3つのアプリもあります。どのようにして1つのリンクですべてのアプリを扱うことができますか?それは深いリンクで可能ですか、それはそのアプローチです。電子メールが開いている環境そのアプリケーションをナビゲートする必要があります – shamnad

+0

この問題は、HTMLページでは難解です。私はHTMLページを作成し、ページがモバイルまたはデスクトップに読み込まれていることを確認できます。それがモバイルにロードされている場合、私は通常のスキーマを使用することができますそれはアプリがインストールされている場合、それがSafariは、アプリを開いて、モバイルサイトに移動することはできません表示されますインストールされます。これはjavascriptの$(window).blur(function() ')で行うことができます。誰もが必要に応じて次のレベルを実行できますが、深いリンクの代わりに普遍的なリンクを試みることを強くお勧めします – shamnad