2016-11-25 41 views
0

我必須從Xamarin表單中的另一個應用程序打開應用程序。我發現Rivets組件說它可以做我想做的事,但我不確定它引用了哪個網址。Xamarin使用Rivets組件打開另一個應用程序

我看着http://applinks.org/documentation/它說我想要打開每個移動平臺的網址。 我的問題是,對於iOS,它尋找什麼網址?我認爲這是iTunes在iTunes中的鏈接。所有鏈接都會在應用程序中打開應用程序商店,但如果已安裝,則不會啓動應用程序。

+0

你想開始什麼應用程序? iOS確實有一些方法可以在沒有鉚釘的情況下啓動應用程序,使用特殊字符串,類似於意圖。我對他們有一點經驗。 – hvaughan3

+0

爲iPhone設計的藍色鑽石派對遊戲 – jbassking10

回答

1

除非你有過藍鑽黨應用程序的代碼控制,或者您知道藍鑽黨應用程序已註冊一個或多個自定義應用程序的鏈接(這是您已經閱讀有關自定義網址),你會無法在iOS上從您的應用中打開它。這是與鉚釘合作的唯一方法。該藍鑽黨應用程序將需要註冊某種它將響應的定製URI。然後,使用Rivets,您的應用程序將調用該自定義URI。

*編輯:爲了讓您的應用程序來處理來自其他應用程序的鏈接,你可以前往Xamarin的Getting Started Guide(看下處理傳入的應用鏈接導航標題):

的Android做的事情比iOS的不同,但針對iOS:

註冊自定義URI在的Info.plist(不知道這是正確的XML,但它是類似的東西,檢查出的鏈接的圖像)下CFBundleURLName是(在string只是你的方案的自定義名稱,然後你可以列出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將註冊bluediamondparty爲您的URI方案爲您的應用程序響應。現在

,爲了讓您的應用程序做一些運行與您的自定義方案的URI時,你重寫OpenUrlAppDelegate(這可以讓你把東西您的自定義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; 
} 

從你的第二個應用程序打開的URI,你可能會遇到這樣的事情:

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

最後,你可能會注意到,這些方法都使用實際需要的個鉚釘組件...所以這是什麼成分實際上爲我們做什麼?什麼鉚釘實際上做的是讓你的應用在實際的URL(如http://rdio.com/song/12345)通過和鉚釘將前往該網頁,尋找特殊meta標籤,描述瞭如何在頁面上的內容鏈接到移動應用用戶可能已經安裝在他們的設備上。這樣rdio網頁上,他們可能有以下meta標籤:

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

在這種meta標籤會列出正確的自定義URI方案試圖打開RDIO的應用程序,如果用戶有它安裝並已註冊本身具有自定義rdio URI方案。

要知道的另一件事是,您的應用程序不具有對URI方案的獨佔權。因此,如果其他應用程序與您選擇相同的URI方案並且用戶安裝了這兩個應用程序,那麼要安裝的最後一個應用程序將響應URI方案。

+0

我們擁有藍色鑽石派對。我們如何創建自定義鏈接?這是在XCode的某處完成的嗎? – jbassking10

+0

@ jbassking10檢查編輯。 – hvaughan3

相關問題