2016-11-25 42 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

相关问题