如何通过PhoneGap打开iPhone应用程序

3
我希望您可以在我的PhoneGap应用程序中打开iPhone应用程序,例如联系人和日历。即使这样做会将我的应用置于后台,我也不介意。我可以使用window.open打开浏览器,但如何打开其他应用程序呢?例如,window.open("contacts://", '_blank');并不起作用。
5个回答

3

唯一可以让一个应用程序(基于PhoneGap或其他)启动另一个应用程序的方式是打开一个使用目标应用程序自定义URL方案的URL。因此,如果联系人应用程序支持某些自定义方案,那么您很幸运。否则,就没有办法了。


这是您提到的链接,供其他有兴趣的人使用。谢谢。PS 没有办法。 - lost baby

1

你需要编写一个自定义的 PhoneGap 插件,以便访问你在 Objective-C 中编写的自定义方法。

官方的 PhoneGap 文档在 这里
我将简要解释如何完成此操作。
在你的 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:%@?cc=bar@example.com&subject=Greetings%20from%Cupertino!&body=Wish%20you%20were%20here!",paramter1];
      [[UIApplication sharedApplication] openURL: mailURL];
 }

此外,您可能有兴趣将信息发送回您的PhoneGap应用程序。您可以通过注入一个发送参数的JavaScript调用来实现这一点。在您的Objective C函数中,您可以像这样操作。
 NSString * jsCallBack = [NSString stringWithFormat:@"myJavascriptFunction('%@');",parameter];    
        [self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];

1

如之前所述,使用URL scheme可以解决问题。如果您有多个应用程序,并且希望能够从其中一个打开另一个,则在使用PhoneGap构建时非常简单:您只需要将URL scheme添加到您的config.xml文件中,例如:

// In config.xml
<gap:url-scheme>
    <scheme>app1scheme</scheme>
</gap:url-scheme>

然后在您的另一个应用程序中,您将只需拥有到app1scheme://的链接,例如:

<a href="app1scheme://">Start App1</a>

1

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接