Obj-C를 배우는 데 시간이 걸리고 싶지 않습니다. 저는 웹 애플리케이션 프로그래밍에 7 년 이상을 보냈습니다. WebView를 사용하고 전체 앱을 자바 스크립트로 작성하여 프로젝트 리소스에서 바로 파일을 가져 오는 방법이 있어야하지 않나요?
답변
주변을 검색 한 후 답을 찾았습니다. 내가 한 일은 다음과 같습니다.
-
XCode에서 새 프로젝트를 만듭니다. 보기 기반 앱을 사용한 것 같습니다.
-
WebView 개체를 인터페이스로 드래그하고 크기를 조정합니다.
-
WebViewController.m 내부 (또는 뷰 이름에 따라 비슷한 이름의 파일), viewDidLoad 메서드에서 :
NSString * filePath = [[NSBundle mainBundle] pathForResource : @ "index"ofType : @ "html"]; NSData * htmlData = [NSData dataWithContentsOfFile : filePath]; if (htmlData) { NSBundle * bundle = [NSBundle mainBundle]; NSString * path = [번들 번들 경로]; NSString * fullPath = [NSBundle pathForResource : @ "index"ofType : @ "html"inDirectory : path]; [webView loadRequest : [NSURLRequest requestWithURL : [NSURL fileURLWithPath : fullPath]]]; }
-
이제 프로젝트에 리소스로 추가 한 모든 파일을 웹 앱에서 사용할 수 있습니다. 문제가없는 javascript 및 css 및 이미지 파일이 포함 된 index.html 파일이 있습니다. 지금까지 찾은 유일한 제한은 새 폴더를 만들 수 없어 모든 파일이 리소스 폴더를 복잡하게 만든다는 것입니다.
-
트릭 : 파일을 XCode에서 리소스로 추가했는지 확인하십시오. 그렇지 않으면 파일을 사용할 수 없습니다. XCode에 빈 파일을 추가 한 다음 파인더에서 내 파일을 맨 위로 드래그했습니다. 그것은 나를 위해 일하고 있습니다.
참고 : Obj-C는 배우기가 그렇게 어렵지 않아야한다는 것을 알고 있습니다. 하지만 이미이 앱이 JS에 있고 Safari에서 작동한다는 것을 알고 있기 때문에 이것은 저에게 훨씬 더 빠른 개발주기입니다. 언젠가 나는 무너지고 Obj-C를 배워야 할 것이라고 확신합니다.
도움이되는 몇 가지 다른 리소스 :
JavaScript에서 Obj-C 호출 : JavaScript에서 Objective-C 호출
Obj-C에서 자바 스크립트 호출 : 웹 해커를위한 아이폰 앱 개발
애플리케이션 번들에서 파일 읽기 : uiwebview
답변
http://www.phonegap.com 에서 PhoneGap을 확인하십시오 . 그들은 JavaScript, HTML 및 CSS를 기본 iPhone 앱에 포함 할 수 있다고 주장합니다.
답변
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 / 어딘가에 데이터베이스가 있어야합니다. 거기에는 웹에서 열린 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> 데이터베이스에서 *를 선택하십시오.
1 | http_robertsanders.name_0 | NoteTest | Database | API 예 | 20000 | 0000000000000001.db
sqlite> Origins에서 * 선택;
http_robertsanders.name_0 | 5242880
답변
obj-C를 몰라도 응용 프로그램을 만들 수 있습니다. QuickConnectiPhone 프레임 워크를 사용하면이 작업을 수행 할 수 있습니다. http://tetontech.wordpress.com 에서 사용 방법과 요청한 작업을 수행하는 다른 방법을 확인하십시오 .
답변
Objective C로 작성된 네이티브 래퍼가 있어야합니다.이 래퍼에는 WebView를 만들고 인터넷에서 지정된 주소 (응용 프로그램이있는 위치)로 이동하는 데 필요한 코드 (예 : 10)가 포함되어있을 수 있습니다. 그러나이 경우 애플리케이션은 완전한 기능을 갖춘 웹 애플리케이션이어야합니다 (즉, JavaScript뿐만 아니라 마크 업에 HTML도 사용).
답변
나는이 같은 문제에 부딪쳤다. 나는 이미 완전히 자바 스크립트로 작성된 게임을 가지고 있습니다. iPhone 친화적 버전을 만들고 싶지만 Obj-C는 과잉입니다. 내가 한 일은 WebView를 사용하여 iphone 앱의 특수 URL을 가리키는 것입니다. 그것에 대해 생각한 후 해당 파일을 앱 디렉토리로 이동하고 로컬에서 실행할 수 있다고 가정합니다.
답변
현재 애플 API로는이 작업을 수행 할 수 없습니다. 가장 가까운 방법은 웹킷 브라우저를 포함하는 간단한 기본 iPhone 앱을 작성하는 것입니다. 그러면 xhtml / js 애플리케이션을 로컬에서 탐색 할 수 있습니다.
데이터를 저장하려면 한 단계 더 나아가 앱을 서버에 올리고 데이터 저장 및 검색 호출을 제공하는 경량 http 서버를 포함해야합니다. 아마도 이상적인 솔루션은 아니지만 전체 Obj-C 앱보다 작업량이 적을 수 있습니다.
참고로 Obj-C는 배우기가 상당히 쉽습니다. SDK에는 수많은 예제가 있습니다. 커뮤니티는 강력하며 주저없이 잘 작성된 질문에 답할 것입니다.