Hatena::ブログ(Diary)

harukazepcの日記 このページをアンテナに追加 RSSフィード

2012-02-23

[][][] Titanium.UI.WebView の UserAgent をカスタマイズする(モジュール作ったよ) #titaniumjp


WebViewのUserAgentを変えたい

※さっさとやり方だけ知りたい方は、飛ばしてね

WebViewにより、サーバ側に用意したサイトなどと連携するアプリを作ったりすることがあると思います。

その際に、アプリから来た時にだけ○○する、みたいなことって、必要になったりします。

その場合、カスタマイズした UserAgent でアクセスし判定することが、一番スマートな感じじゃないでしょうか。

ただ、Titanium には標準ではまだいい感じのUserAgentの変更方法がないようです。(1.8.1現在)

  • Titaniumには、Titanium.userAgent ってのがあるのですが、これはWebViewには反映されません。
  • Titanium.Network.HTTPClient によるアクセスであれば、 setRequestHeader で設定可能。
    • ただし、リクエストを自分で制御して、受け取ったレスポンスをひたすらWebViewに反映していく・・・ってのはきついです。ブラウザ作るか、って感じで・・・

と、そんな感じで個人的にも困っていたので、よっしゃ一念発起(?)、モジュールを作りました!!


TiWebviewUserAgent - customize Ti.UI.WebView's UserAgent

iPhone用とAndroid用のモジュールを作りました。

TiWebviewUserAgent - customize Ti.UI.WebView’s UserAgent

f:id:harukazepc:20120223114024p:image

user agent を変えるモジュールのアイコン、ってどうしたらいいんだよ・・・

使い方はそれぞれ examples/app.js を参考にしていただければと思いますが、基本的に WebView の描画前に UserAgent を設定する必要がありますのでご注意をば。

githubはこちら。

harukazepc / TiWebViewUserAgent

初めてiPhone/Android両方のネイティブモジュールを作りましたが、、、うまくIFを合わせられなくてうむむむな感じw

まぁ、元々のUA設定の構造が違うからしょうがないですが。

作り方については、公式のWikiがとてもわかりやすかったです。

必要でしたらぜひぜひご利用くださいませ。

また、問題や要望あればお待ちしております。