当前位置:  开发笔记 > 编程语言 > 正文

如何在不使用Web应用程序的情况下完全使用JavaScript编写iPhone应用程序?

如何解决《如何在不使用Web应用程序的情况下完全使用JavaScript编写iPhone应用程序?》经验,为你挑选了3个好方法。

我不想花时间学习Obj-C.我花了7年多的时间做网络应用程序编程.难道不应该有办法使用WebView,只需在javascript中编写整个应用程序,从项目资源中提取文件?



1> Jeff..:

搜索后我找到了答案.这就是我所做的:

    在XCode中创建一个新项目.我想我使用了基于视图的应用程序.

    将WebView对象拖到界面上并调整大小.

    在viewDidLoad方法中,在WebViewController.m(或类似命名的文件,取决于视图的名称)内部:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];  
    NSData *htmlData = [NSData dataWithContentsOfFile:filePath];  
    if (htmlData) {  
      NSBundle *bundle = [NSBundle mainBundle]; 
      NSString *path = [bundle bundlePath];
      NSString *fullPath = [NSBundle pathForResource:@"index" ofType:@"html" inDirectory:path];
      [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];
    }

    现在,您作为项目资源添加的任何文件都可以在您的Web应用程序中使用.我有一个index.html文件,包括javascript和css以及没有问题的图像文件.到目前为止,我发现的唯一限制是我无法创建新文件夹,因此所有文件都会混淆资源文件夹.

    技巧:确保您已将文件作为资源添加到XCode中,否则该文件将不可用.我一直在XCode中添加一个空文件,然后在finder中将我的文件拖到顶部.这一直在为我工作.

注意:我意识到Obj-C一定不难学.但是因为我已经在JS中存在这个应用程序并且我知道它在Safari中有效,所以对我来说这是一个更快的开发周期.有一天,我确信我必须打破并学习Obj-C.

我发现其他一些有用的资源:

从javascript调用Obj-C:从javascript 调用objective-c

从Obj-C调用javascript:针对网络黑客的iphone应用开发

从应用程序包中读取文件:uiwebview



2> Chris Samuel..:

查看http://www.phonegap.com上的 PhoneGap,他们声称它允许您将JavaScript,HTML和CSS嵌入到原生iPhone应用程序中.



3> Robert Sande..:

对于那些在iPhone 2.1(可能是2.0)上执行此操作的人,您不需要为本地数据存储创建任何特殊服务.MobileSafari似乎支持HTML5/WHATWG SQL数据库API.这与最新版本的桌面Safari和Firefox支持的API相同.

如果您使用的是Dojo或ExtJS等提供存储抽象的工具包,那么您的代码应该适用于任何现代浏览器,包括MobileSafari.

要测试,请在iPhone上打开http://robertsanders.name/dev/stackoverflow/html5.html.

如果您打开该页面然后查看越狱iPhone的文件系统,您应该在/ private/var/mobile/Library/WebKit/Databases /中的某处看到一个数据库.甚至还有一个Web打开的DB目录.

root#sqlite3 /private/var/mobile/Library/WebKit/Databases/Databases.db SQLite版本3.5.9输入".help"作为说明

sqlite> .databases seq名称文件


0 main /private/var/mobile/Library/WebKit/Databases/Databases.db

sqlite> .tables

数据库起源

sqlite> select*from Databases;

1 | http_robertsanders.name_0 | NoteTest |数据库| API示例| 20000 | 0000000000000001.db

sqlite> select*from Origins;

http_robertsanders.name_0 | 5242880

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有