我想构建一个严重依赖Google地图的应用。是否可以用HTML / Javascript编写本机iPhone应用程序?如果是这样,是否可以从应用商店访问?否则,我如何在原生应用中添加Google地图?
答案 0 :(得分:3)
您需要在Objective-C中构建一个包含 UIWebView 的框架应用程序。您可以使用HTML / Javascript填充 UIWebView 。
在我看来,更好的选择是使用本机应用中的MapKit framework。 MapKit允许您使用完整的Google Maps API执行几乎所有操作,我认为本机应用程序在设备上的效果始终优于 UIWebView 容器应用程序。
我在my apps的一些中使用了MapKit,发现它易于使用且性能良好。在链接示例中,我在页面模式下在 UIScrollView 中嵌入了 MkMapView 。我怀疑你用 UIWebView 实现这一点很容易,我相信它不会表现得那么好。
答案 1 :(得分:3)
是的,可以这样做。有一个很棒的开源项目叫做PhoneGap http://phonegap.com/,可以让你做到这一点。不仅可以在其他移动操作系统上部署,例如Android,黑莓等。
要登录应用商店,您需要注册为苹果开发商,价格约为100美元。开发只能在mac上完成)Apple为您提供了许多软件工具,包括代码编辑器和iphone模拟器。
答案 2 :(得分:3)
解决问题的两个部分:
是否可以写一个原生的 HTML / Javascript中的iPhone应用程序 ?如果是这样,它是否可以访问 应用程序商店?
有一个名为NimbleKit的框架,允许您使用HTML / JavaScript编写应用程序,然后将其转换为Objective-C / Cocoa。但是NimbleKit有几个问题:
另一种解决方案是在本机iPhone应用程序中嵌入UIWebView
(您必须使用一些Objective-C / Cocoa来执行此操作),然后将其余应用程序编写为iPhone Web加载到UIWebView
的应用。但是,我强烈建议您不编写iPhone Web应用程序,无论是独立还是嵌入在本机应用程序中。在写作时,iPhone网络应用程序有许多缺点,包括:
iPhone网络应用程序将来可能会变得可行,但是在这个时候,我会远离它们并使用本机技术(即Objective-C / Cocoa)编写本机iPhone应用程序。
否则,我怎么能包括谷歌 本地应用中的地图?
使用Apple的框架“MapKit”。有关如何使用MapKit的信息,请参阅Displaying Maps and Annotations,iPhone Application Programming Guide教程和this教程中的this。
答案 3 :(得分:1)
在iPhone OS 3.0及更高版本中,Apple创建了一个自定义Cocoa Touch控件,允许开发人员将Google Maps嵌入到本机应用程序中。地图支持多点触控,您可以使用自定义视图注释地图,查找用户的当前位置并执行其他很酷的操作。
答案 4 :(得分:0)
这样做的方法是将您的应用程序构建为常规Web应用程序(javascript / css / html)。嵌入在本机WebView中。 WebView是iphone应用程序的容器,旨在成为Web应用程序。这些应用的销售方式与应用商店中的其他应用相同。
答案 5 :(得分:0)
在HTML / JS中编写本机iPhone应用程序是不可能的,http://code.google.com/p/iphone-google-maps-component/可能有用,或者您可以使用:
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[[NSURL alloc] initWithString: @"http://maps.google.com/maps?g=London"]];
有关详细信息,请参阅How can I launch the Google Maps iPhone application from within my own native application?。
答案 6 :(得分:0)
还有Appcelerator Titanium,它看起来是使用网络技术开发iPhone和Android应用程序的良好框架。他们在C4上做了一个有趣的演讲。
然而,尝试在移动设备上“一次编写,随处运行”将导致您在所有平台上创建一些低于本机应用程序的东西,因为您需要设计它们之间的最小公分母。