it-swarm-ko.tech

웹 응용 프로그램으로 만들지 않고 iPhone 응용 프로그램을 JavaScript로 완전히 작성하려면 어떻게해야합니까?

Obj-C를 배우기 위해 시간을 내고 싶지 않습니다. 나는 웹 애플리케이션 프로그래밍을 7 년 이상 보냈다. WebView를 사용하고 프로젝트의 리소스에서 파일을 가져 와서 전체 앱을 자바 스크립트로 작성하는 방법이 없어야합니까?

84
Jeff

주변을 둘러 본 후 답을 찾았습니다. 내가 한 일은 다음과 같습니다.

  1. XCode에서 새 프로젝트를 작성하십시오. 뷰 기반 앱을 사용했다고 생각합니다.

  2. WebView 객체를 인터페이스로 드래그하고 크기를 조정하십시오.

  3. ViewDidLoad 메소드에서 WebViewController.m 내부 (또는보기 이름에 따라 비슷한 이름의 파일) :

    NSString * filePath = [[NSBundle mainBundle] pathForResource : @ "index"ofType : @ "html"]; 
     NSData * htmlData = [NSData dataWithContentsOfFile : filePath]; 
     if (htmlData) {
     NSBundle * bundle = [NSBundle mainBundle]; 
     NSString * path = [번들 bundlePath]; 
     NSString * fullPath = [NSBundle pathForResource : @ "index"ofType : @ "html"inDirectory : path]; 
     [webView loadRequest : [NSURLRequest requestWithURL : [NSURL fileURLWithPath : fullPath]]]; 
    }
  4. 이제 프로젝트에 리소스로 추가 한 모든 파일을 웹 앱에서 사용할 수 있습니다. javascript와 CSS 및 이미지 파일이 포함 된 index.html 파일이 문제없이 있습니다. 지금까지 찾은 유일한 제한 사항은 새 폴더를 만들 수 없으므로 모든 파일이 리소스 폴더를 어지럽히는 것입니다.

  5. 트릭 : 파일을 XCode에서 리소스로 추가했는지 확인하십시오. 그렇지 않으면 파일을 사용할 수 없습니다. XCode에 빈 파일을 추가 한 다음 Finder에서 파일을 맨 위로 드래그했습니다. 그것은 나를 위해 일하고있다.

참고 : Obj-C는 배우기가 어렵지 않아야한다는 것을 알고 있습니다. 그러나 이미 JS 에이 응용 프로그램이 있고 Safari에서 작동한다는 것을 알고 있기 때문에 이것은 훨씬 빠른 개발주기입니다. 언젠가 나는 Obj-C를 분해하고 배워야 할 것입니다.

도움이 된 다른 리소스들 :

Javascript에서 Obj-C 호출 : javascript에서 objective-c 호출

Obj-C에서 자바 스크립트 호출 : 웹 해커를위한 아이폰 앱 개발

응용 프로그램 번들에서 파일 읽기 : iwebview

71
Jeff

http://www.phonegap.com 에서 PhoneGap을 확인하면 JavaScript, HTML 및 CSS를 기본 iPhone 앱에 포함시킬 수 있다고 주장합니다.

22
Chris Samuels

IPhone 2.1 (아마도 2.0)에서이 작업을 수행하는 경우 로컬 데이터 저장을위한 특별한 서비스를 만들 필요가 없습니다. MobileSafari는 HTML5/WHATWG SQL 데이터베이스 API를 지원하는 것으로 보입니다. 최신 버전의 데스크탑 Safari 및 Firefox에서 지원하는 것과 동일한 API입니다.

스토리지 추상화를 제공하는 Dojo 또는 ExtJS와 같은 툴킷을 사용하는 경우 코드는 MobileSafari를 포함한 최신 브라우저에서 작동해야합니다.

테스트하려면 iPhone에서 http://robertsanders.name/dev/stackoverflow/html5.html 을 엽니 다.

해당 페이지를 열면 Jailbroken iPhone의 파일 시스템을 보면/private/var/mobile/Library/WebKit/Databases /에 데이터베이스가 나타납니다. 거기에는 웹에서 열린 DB 디렉토리도 있습니다.

root # sqlite3 /private/var/mobile/Library/WebKit/Databases/Databases.db SQLite 버전 3.5.9 지침을 보려면 ".help"를 입력하십시오.

sqlite> .databases seq 이름 파일


0 기본 /private/var/mobile/Library/WebKit/Databases/Databases.db

sqlite> .tables

데이터베이스 출처

sqlite> select * from 데이터베이스;

1 | http_robertsanders.name_0 | NoteTest | 데이터베이스 | API 예 | 20000 | 0000000000000001.db

sqlite> select * from Origins;

http_robertsanders.name_0 | 5242880

7
Robert Sanders

Obj-C를 몰라도 응용 프로그램을 만들 수 있습니다. QuickConnectiPhone 프레임 워크를 사용하면이 작업을 수행 할 수 있습니다. 사용 방법 및 요청한 다른 방법은 http://tetontech.wordpress.com 을 확인하십시오.

4
Lee

문제에 관한 새로운 o'reilly book

2
cris

Objective C로 작성된 원시 랩퍼가 있어야합니다.이 랩퍼에는 WebView를 작성하고 인터넷 (애플리케이션이 상주하는)의 지정된 주소로 이동하는 데 필요한 코드가 거의 없습니다 (예 : 10). 그러나이 경우 응용 프로그램은 모든 기능을 갖춘 웹 응용 프로그램이어야합니다 (즉, JavaScript뿐만 아니라 마크 업에도 일부 HTML을 사용해야 함).

2
Sergey Mikhanov

나는이 같은 문제에 부딪쳤다. 이미 자바 스크립트로 작성된 게임이 있습니다. 나는 iPhone 친화적 인 버전을 만들고 싶지만 Obj-C는 과잉입니다. 내가 한 일은 WebView를 사용하여 iphone 앱의 특수 URL을 가리 키는 것이 었습니다. 그것에 대해 생각한 후에는 해당 파일을 앱 디렉토리로 옮기고 로컬에서 실행할 수 있다고 가정합니다.

2
dawnerd

현재 Apple API를 사용하여이 작업을 수행 할 수있는 방법은 없습니다. 가장 가까운 방법은 웹킷 브라우저를 포함하는 간단한 기본 iPhone 응용 프로그램을 작성하는 것입니다. 그러면 xhtml/js 응용 프로그램을 로컬로 탐색 할 수 있습니다.

데이터를 저장하려면 한 단계 더 나아가서 서버를 설치하고 데이터를 저장하고 검색하는 호출을 제공하는 간단한 http 서버를 포함해야합니다. 아마도 이상적인 솔루션은 아니지만 전체 Obj-C 앱보다 작업량이 적을 것입니다.

참고로 Obj-C는 배우기 매우 쉽습니다. SDK에는 수많은 예제가 있습니다. 커뮤니티는 강력하고 주저없이 질문에 잘 대답 할 것입니다.

2
jsapara

나는 phonegap을 오랫동안 사용 해왔고 그것은 나에게 가장 좋은 결과를 가져온 것 같습니다. 나는 일주일 정도 내 경험을 내 앱에 대한 링크와 함께 게시 할 것입니다.

1
shawn

Titanium Mobile 도 옵션입니다. Objective-C로 변환되는 JavaScript를 작성할 수 있습니다.

1
Josh Brown

적어도 2 명이 phonegap을 언급했지만이 글도 게시하고 Apple이 phonegap 프레임 워크를 승인했다고 언급했습니다. 따라서 phonegap을 사용한다고해서 Apple에 의해 앱이 거부되지 않습니다.

phonegap 및 Apple에 대한 블로그 게시물-http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/

전화 갭 홈

0
Neo42