HTML / Javascript中的原生iPhone应用程序?

时间:2010-01-13 04:09:36

标签: google-maps iphone

我想构建一个严重依赖Google地图的应用。是否可以用HTML / Javascript编写本机iPhone应用程序?如果是这样,是否可以从应用商店访问?否则,我如何在原生应用中添加Google地图?

7 个答案:

答案 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有几个问题:

  • 售价99美元。
  • 它增加了间接级别,增加了出错的可能性。
  • 因为你没有使用“真实的东西”,所以你可以做的事情更加有限(即你只能使用他们提供给你的东西)。

另一种解决方案是在本机iPhone应用程序中嵌入UIWebView(您必须使用一些Objective-C / Cocoa来执行此操作),然后将其余应用程序编写为iPhone Web加载到UIWebView的应用。但是,我强烈建议您编写iPhone Web应用程序,无论是独立还是嵌入在本机应用程序中。在写作时,iPhone网络应用程序有许多缺点,包括:

  • 他们很慢。
  • 它们的功能有限(例如没有设备API)。
  • 他们无法利用Cocoa-Touch框架(一个严重的缺点)。

iPhone网络应用程序将来可能会变得可行,但是在这个时候,我会远离它们并使用本机技术(即Objective-C / Cocoa)编写本机iPhone应用程序。

  

否则,我怎么能包括谷歌   本地应用中的地图?

使用Apple的框架“MapKit”。有关如何使用MapKit的信息,请参阅Displaying Maps and AnnotationsiPhone 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上做了一个有趣的演讲。

然而,尝试在移动设备上“一次编写,随处运行”将导致您在所有平台上创建一些低于本机应用程序的东西,因为您需要设计它们之间的最小公分母。