我想从我的phonegap应用程序中打开联系人和日历等iphone应用程序,我不介意这样做会将我的应用程序置于后台。我可以打开浏览器并使用window.open但是如何打开其他应用程序?
例如window.open("contacts://", '_blank');
不起作用
答案 0 :(得分:3)
一个应用程序(基于PhoneGap或其他应用程序)可以导致另一个应用程序启动的唯一方法是打开使用目标应用程序的自定义URL方案的URL。因此,如果“联系人”应用支持某些自定义方案,那么您很幸运。如果没有,那你就不走运了。
答案 1 :(得分:1)
您需要编写自定义的phonegap插件,以便访问您在目标C中编写的自定义方法。
官方手机档位文件为here 我将简要解释你将如何做到这一点 在您的javascript中,您将调用此代码:
PhoneGap.exec("OpenMailAppPlugin.openMailApp",parameter1);
在目标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];
}
此外,您可能有兴趣将 back 信息发送到您的phonegap应用程序。您可以通过注入发送参数的javascript调用来完成此操作。在你的目标C函数中你会做这样的事情。
NSString * jsCallBack = [NSString stringWithFormat:@"myJavascriptFunction('%@');",parameter];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];
答案 2 :(得分: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>
答案 3 :(得分:0)
需要使用插件,遗憾的是你需要原生的ios代码:
这个有效: https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ExternalFileUtil
答案 4 :(得分:0)
以下是所有iOS / iPhone应用程序URL列表
在这个过时的链接上可以找到更多内容 http://www.wiki.akosma.com/IPhone_URL_Schemes
看看如何实现你的网址 https://appurl.org/docs-handling-android