2011-10-21 68 views
3

我想从我的phonegap应用程序中打开联系人和日历等iphone应用程序,我不介意这样做会将我的应用程序置于后台。我可以打开浏览器并使用window.open,但是如何打开其他应用程序?如何通过电话打开iphone应用程序

window.open("contacts://", '_blank');不起作用

回答

3

一个应用程序,的PhoneGap为主或以其他方式,可能会导致另一个应用程序启动的唯一方法是打开使用目标应用程序的自定义URL方案的URL。所以,如果联系人应用程序支持一些自定义方案,那么您很幸运。如果不是,你运气不好。

+0

http://developer.apple.com/library/safari/#featuredarticles/iPhoneURLScheme_Reference/Introduction/Introduction.html您提到的任何感兴趣的人的链接。谢谢。 PS nope没有办法。 –

1

您将需要编写自定义PhoneGap的插件,这样您就可以访问你的目标C.

官方的PhoneGap文档here编写自定义的方法。
我将简要解释你将如何做到这一点。
在JavaScript中,你会调用这个代码:

PhoneGap.exec("OpenMailAppPlugin.openMailApp",parameter1); 

在Objective C中,您将创建一个新的文件OpenMailAppPlugin类。阅读上面的链接以获取确切的指令,但重要的方法将会如此。

-(void) openMailApp:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options { 
      NSString *parameter1 = [paramArray objectAtIndex:0]; //recieves information from javascript function 

      NSURL* mailURL = [NSURL URLWithString: @"mailto:%@[email protected]&subject=Greetings%20from%Cupertino!&body=Wish%20you%20were%20here!",paramter1]; 
     [[UIApplication sharedApplication] openURL: mailURL]; 
} 

此外,您可能感兴趣的信息发送回您的PhoneGap应用程序。你可以通过注入一个发送参数的javascript调用来做到这一点。在你的目标C函数中,你会做这样的事情。

NSString * jsCallBack = [NSString stringWithFormat:@"myJavascriptFunction('%@');",parameter];  
     [self.webView stringByEvaluatingJavaScriptFromString:jsCallBack]; 
1

正如前面回答,使用URL方案可以工作。如果你有几个应用程序并希望能够打开一个从其它,那么它使用的PhoneGap构建的时候真的很简单:你只需要add the URL scheme to your config.xml file,如:

// In config.xml 
<gap:url-scheme> 
    <scheme>app1scheme</scheme> 
</gap:url-scheme> 
从您的其他你会应用

然后只是有一个链接app1scheme://,如简单地

<a href="app1scheme://">Start App1</a> 
相关问题