// Classes/MainViewController.m:
- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSDictionary *headers = [request allHTTPHeaderFields];
    BOOL hasWhateverAddedHeader = NO;
    
    for (NSString *key in [headers allKeys]) {
		if([key isEqualToString:@"X-Access-From-Cordova"]) {
			hasWhateverAddedHeader = YES;
			break;
		}
	}
    
    if (!hasWhateverAddedHeader) {
        NSMutableURLRequest *newRequest = [request mutableCopy];
        [newRequest addValue:@"true" forHTTPHeaderField:@"X-Access-From-Cordova"];
        [theWebView loadRequest:newRequest];
        [newRequest release];
        return NO;
    } else {
        return YES;
    }
}

無理くり。ヘッダはCordovaLibではなくアプリの方いじるだけで行けました。

// Classes/Cleaver/CDVViewController.m:
    if (startFilePath == nil) {
        loadErr = [NSString stringWithFormat:@"ERROR: Start Page at '%@/%@' was not found.", self.wwwFolderName, self.startPage];
        NSLog(@"%@", loadErr);
        self.loadFromString = YES;
        appURL = nil;
    } else {
        appURL = [NSURL fileURLWithPath:startFilePath];
    }
+    appURL = [NSURL URLWithString:@"http://kowabana.jp"];

iPhone版はローカルファイル前提になってるのでCordovaLibを無理矢理変える。

Xcodeを入れる。

Titanium Studioを入れる。(Titanium SDKがインストールされる)

最小限サンプル。komagata/titanium-foo

// Resources/app.js
var window = Ti.UI.createWindow({
  backgroundColor:'#ffffff',
  navBarHidden:true,
  exitOnClose:true
});
  
var label = Ti.UI.createLabel({
  color:'#000000',
  text:'foo',
  height:'auto',
  width:'auto'
});
window.add(label);
window.open()

プロジェクトディレクトリに入って下記。(.などの相対パスだと駄目なのでpwd (via @yagi_))

% ~/Library/Application\ Support/Titanium/mobilesdk/osx/2.0.2.GA/iphone/builder.py run "`pwd`"

skitchUl2P0b

できた。

何かおかしい場合は下記で大抵直るらしい。

% rm -rf build

iOS Simulator - iPhone / iOS 4.3 (8F192)

Write below If you want to hide address bar on iPhone or Android.

window.scrollTo(0, 1)

iOS Simulatorは深っかいディレクトリにあっていつもググるのでSpotlightなどのLauncherの検索パスに含めておく。

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications

Alfred Preferences

僕の場合はAlfredなのでこんな感じ。

Alfred

先日、@jishihaさんが来たときに、手土産と言って僕が実験してた怖い話プレーヤー(Webアプリ)をTitaniumでiPhoneアプリ化して持ってきてくれた。

photo

スゲー、何かちゃんとしたアプリみたいだ。

プラスアルファで面白かったのが、アプリなのでネットが使えない場面もあるハズなんですが、その時にこのアプリを起動すると・・・

photo

本来はネガティブなイメージのエラーを逆にコンテンツに活かす。頭柔らかいすねw。

怖い話のサイトだからバグも霊障とか呼び方を変えれば全く問題ないのかも知れないですね。