Webアプリをネイティブアプリ化する (5/6)
作成:2011-05-20 12:06
更新:2011-05-20 12:13
更新:2011-05-20 12:13
■ソースコードを修正する
後は、ソースコードを修正し、WebViewに、用意しておいたWebアプリの画面を表示するだけです。これは「FirstNativeAppViewController.m」というファイルを修正します。
この「.m」という拡張子のファイルは、Objective-Cという言語のプログラムを書くためのものです。ここに書かれているソースコードの中から、
ここでは、筆者のサンプルアプリのURLを指定してありますが、☆マークのテキストをそれぞれのアプリをアップロードしたURLに変更すれば、自分のアプリを表示するようにできます。これで、修正は完了です。
――全部終わったら、ウインドウの左上にある「ビルドと実行(またはRun)」ボタンを押してください。プロジェクトをビルドし、それからiOSエミュレータでアプリを実行します。アプリが起動し、公開したWebアプリの画面が現れます。もちろん、ボタンやリストなどをクリックすれば、ちゃんと動きます。ね、「外観はネイティブアプリ、中身はWebアプリ」というアプリが簡単に作れたでしょう?
ここでは、@implementation FirstNativeAppViewControllerという文の下にソースコードを追加しました。これは「FirstNativeAppViewController」という名前の「クラス」を定義するものです。Objective-Cでは、プログラムは「クラス」というプログラムの塊として作成することが出来ます。デフォルトで、画面表示のためのクラスが用意されていて、これを修正していたのですね。
ここでは、「viewDidLoad」という名前のメソッドを追加してあります。「メソッド」というのは、クラスに用意しておく処理です。JavaScriptの関数に相当するようなものと考えてください。このviewDidLoadは、レイアウトのデータが読み込まれて表示が準備できたところで呼び出されるメソッドなのです。ここのメソッドでは、ざっと以下のようなことをしています。
1. アクセス先のURLを、Objective-Cのテキスト(NSStringというもの)の変数に用意する。
2. URLを扱うオブジェクト(NSURLというもの)を用意する。
3. 他のサイトにアクセスするためのリクエストを扱うオブジェクト(NSRequestというもの)を用意する。
4. WebViewの「loadRequest」というメソッドを呼び出してリクエストを送る。
これで、WebViewは用意したURLのページにアクセスをし、そのページの内容が表示されます。まぁ、Objective-Cがわからないと理解するのは難しいでしょうが、これだけのことができれば、WebViewを使って「Webアプリを表示するネイティブアプリ」は作れてしまう、ということです。Objective-Cはわからなくとも、「これをそのままコピー&ペーストして、URLだけ修正すればいい」のだから、簡単でしょう?
この「.m」という拡張子のファイルは、Objective-Cという言語のプログラムを書くためのものです。ここに書かれているソースコードの中から、
@implementation FirstNativeAppViewControllerこういう文を探しましょう。そして、この文の後に、下のリスト欄に書いてあるソースコードを追加してください。
ここでは、筆者のサンプルアプリのURLを指定してありますが、☆マークのテキストをそれぞれのアプリをアップロードしたURLに変更すれば、自分のアプリを表示するようにできます。これで、修正は完了です。
――全部終わったら、ウインドウの左上にある「ビルドと実行(またはRun)」ボタンを押してください。プロジェクトをビルドし、それからiOSエミュレータでアプリを実行します。アプリが起動し、公開したWebアプリの画面が現れます。もちろん、ボタンやリストなどをクリックすれば、ちゃんと動きます。ね、「外観はネイティブアプリ、中身はWebアプリ」というアプリが簡単に作れたでしょう?
ここでは、@implementation FirstNativeAppViewControllerという文の下にソースコードを追加しました。これは「FirstNativeAppViewController」という名前の「クラス」を定義するものです。Objective-Cでは、プログラムは「クラス」というプログラムの塊として作成することが出来ます。デフォルトで、画面表示のためのクラスが用意されていて、これを修正していたのですね。
ここでは、「viewDidLoad」という名前のメソッドを追加してあります。「メソッド」というのは、クラスに用意しておく処理です。JavaScriptの関数に相当するようなものと考えてください。このviewDidLoadは、レイアウトのデータが読み込まれて表示が準備できたところで呼び出されるメソッドなのです。ここのメソッドでは、ざっと以下のようなことをしています。
1. アクセス先のURLを、Objective-Cのテキスト(NSStringというもの)の変数に用意する。
2. URLを扱うオブジェクト(NSURLというもの)を用意する。
3. 他のサイトにアクセスするためのリクエストを扱うオブジェクト(NSRequestというもの)を用意する。
4. WebViewの「loadRequest」というメソッドを呼び出してリクエストを送る。
これで、WebViewは用意したURLのページにアクセスをし、そのページの内容が表示されます。まぁ、Objective-Cがわからないと理解するのは難しいでしょうが、これだけのことができれば、WebViewを使って「Webアプリを表示するネイティブアプリ」は作れてしまう、ということです。Objective-Cはわからなくとも、「これをそのままコピー&ペーストして、URLだけ修正すればいい」のだから、簡単でしょう?
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※.mファイルに追加するもの - (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"http://web.me.com/tuyano/iApps/sampleapp/index.html"; //☆ NSURL *url = [NSURL URLWithString:str]; NSURLRequest * request = [NSURLRequest requestWithURL: url]; [webview1 loadRequest:request]; }
※関連コンテンツ
「DashcodeによるiPhone用Webアプリ作成入門」に戻る