1. ホーム
  2. javascript

[解決済み] iPhoneアプリを単なるWebアプリにせず、すべてJavaScriptで書くにはどうしたらいいですか?

2023-05-09 17:08:58

質問

Obj-Cを学ぶのに時間をかけたくありません。私はWebアプリケーションのプログラミングに7年以上費やしてきました。WebViewを使用し、javascriptでアプリ全体を書き、プロジェクトのリソースから直接ファイルを取得する方法はないのでしょうか?

どのように解決するのですか?

いろいろと検索した結果、答えが見つかりました。以下は私が行ったことです。

  1. XCodeで新しいプロジェクトを作成します。ビューベースのアプリを使ったと思います。

  2. WebViewオブジェクトをインターフェースにドラッグして、リサイズします。

  3. WebViewController.m (またはビューの名前に応じて同様の名前のファイル) の内部で、 viewDidLoad メソッドの中で。

    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. これで、プロジェクトにリソースとして追加したファイルは、Webアプリで使用できるようになりました。私は、index.html ファイルに javascript と css、画像ファイルを含めていますが、問題なく使用できています。これまでに見つけた唯一の制限は、新しいフォルダーを作成できないので、すべてのファイルが resources フォルダーに散らかってしまうことです。

  5. トリック: XCode でファイルをリソースとして追加したことを確認するか、ファイルが利用できないようにします。私は XCode で空のファイルを追加し、ファインダーでファイルを上にドラッグしています。これは私のために機能しています。

注:Obj-Cを学ぶのはそれほど難しくはないはずだと理解しています。しかし、私はすでにこのアプリを JS で作成しており、Safari で動作することを知っているので、この方が開発サイクルがはるかに速いのです。いつの日か、Obj-C を習得する必要があると思います。

役に立つと思った他のリソースをいくつか紹介します。

javascriptからObj-Cを呼び出す。 javascriptからObjective-Cを呼び出す

Obj-Cからjavascriptを呼び出す。 ウェブハッカーのためのiphoneアプリ開発

アプリケーションバンドルからファイルを読み込む。 uiwebview