投稿

11月, 2012の投稿を表示しています

[Titanium Mobile] WebViewのheightにTitanium.UI.SIZEが効かない

イメージ
WebViewのheightにTitanium.UI.SIZEを設定すると、最初は正常に表示されるけど、画面を行ったり来たりしていると潰れて表示しなくなる現象が発生。 環境: Titanium SDK 2.1.4, iOS Simulator 6.0 下記のように後からsetHeightするらしい。 var webView = Titanium.UI.createWebView({     height: Titanium.UI.SIZE,     width: Titanium.UI.FILL,     disableBounce: true }); webView.addEventListener('load', function() {     var height = webView.evalJS('document.height;');     webView.setHeight(height); }); this.mainView.add(webView); "disableBounce"は上限にScrollしたときに余白部分を表示させない設定。SDK 2.0から使えるらしい。   < Related Posts > [Titanium Mobile] heightが動的に変化するときScrollViewを更新 Titanium Mobileを使ったAndroid, iOS App開発に役立つLink集

[PHP] dBugを利用したDebug用関数

イメージ
WordPressで開発するときによく利用している自分用Debug関数を覚書。 利用するのは dBug . ObjectやArrayを見やすく色分けしてくれる。こんな感じ。 まずは普通に画面に出力。dBug.phpが同じ階層に必要。 if (!function_exists('a')) {     function a() {         if (!class_exists('dBug')) {             require_once ('dBug.php');         }         foreach (func_get_args() as $v) new dBug($v);     } }   これは debug_backtrace を返すだけ if (!function_exists('b')) {     function b() {         return debug_backtrace();     } }   dBugの結果をFileに吐き出す。 Ajaxやアプリ開発などでよく使う。「 wp_upload_dir 」を使っているのでWordPress依存。ここを書き換えれば任意の場所に出力可能。 if (!function_exists('d')) {     function d() {         if (!class_exists('dBug')) {             require_once ('dBug.php');         }         // buffering         ob_start();         foreach (func_get_args() as $v) new dBug($v);         $html = ob_get_contents();

[Titanium Mobile] Basic認証をかけてる開発用SiteにPOSTする

イメージ
開発用ServerはBasic認証をかけているので、Titanium Mobileで開発しているアプリからPOSTする際に必要な設定を覚書。 環境: Titanium SDK 2.1.4 参考にしたSite. xhr authentication with RESTful API | Community Questions & Answers | Appcelerator Developer Center Sample Code auth = 'Basic ' + Titanium.Utils.base64encode(username + ':' + password); xhr.setRequestHeader('Authorization', auth); xhr.send();     < Related Posts > Titanium Mobileを使ったAndroid, iOS App開発に役立つLink集 nginxでBasic認証を設定 .htaccessと.htpasswdで簡易ユーザ認証

[Titanium] JSON.stringifyした値をPOSTしてもjson_decodeが失敗する

イメージ
Titanium MobileでWordPressと連携するアプリを開発しているときの覚書。 環境: Titanium SDK 2.1.4, WordPress 3.3.2, PHP 5.3.19 <現象> アプリ側でJSON.stringifyした値をPOSTして、PHP側でjson_decodeしても失敗する。 <原因> JSON文字列のダブルクォーテーションがエスケープされている。   PHPの設定で「 magic_quotes_gpc 」はOFFになっているし、アプリ側でPOSTしたDATAはエスケープされていない。 Networkを監視して、POSTする値を確認する方法は 前の記事 を参考に。 確認用のPHPで試してみると wp-load.phpに対してPOSTした値のみエスケープされている様子 しょうがないので、json_decodeする前に stripslashes すれば問題なさそう。 WordPressの場合、「 stripslashes_deep 」という関数もある。   < Related Posts > iOS SimulatorからPOSTしているDATAを確認(Network監視) Titanium Mobileを使ったAndroid, iOS App開発に役立つLink集 【Android開発】HttpClientとHttpGetでサーバーとjson通信する 【PHP】json_decode, json_encodeを使えるようにjsonをインストール

iOS SimulatorからPOSTしているDATAを確認(Network監視)

イメージ
Titanium MobileでApp開発しているときにiOS SimulatorからServerにPOSTしているDATAを確認したくて調査。 環境: Mac OS X 10.8.2 Mountain Lion, Wireshark 1.8.3, XQuartz 2.7.4 下記記事が参考になる。 On the Wire: Network Capture Tools for API Developers - Google Data APIs | Google Developers   tcpdumpを使う 下記Commandで監視出来る。 $ tcpdump -A -s 0 -i en0 dst or src host hoge.com and port 80 これはInterface「en0」上で「hoge.com」とのHTTP通信を監視する。 Interfaceは $ ifconfig で確認。 アプリ開発はこれで十分。   < 2013/07/10 Modified > Macのtcpdumpだとサーバー側でnoticeエラー(PHP)が出力されても表示されなくなった。しょうがなくサーバー(Linux)にSSHでアクセスしてtcpdumpコマンドを打つようにした。 $ tcpdump -A -s 0 -i eth0 host 192.168.1.85 and port 80   Wiresharkを使う Wiresharkという無料のNetwork監視Softを使ってみる。参考にしたのは下記Site Installing Wireshark on Mac OS X 10.8 Mountain Lion - israeltorres.org DownloadはWiresharkの Official Site から。 Install後は一度Logout XQuartz もInstallしろと言われるのでDownload -> Install. Wiresharkを起動しても画面が表示されなかったので、ここで再起動 再起動後は無事起動した。   とりあえず、送信元からHTTPのみに制限する場合は「Filter」に ip.src == 192.168.0.11 &&

iOS Simulatorの写真アプリにSample Videoを保存する方法

イメージ
Titanium Mobileを使ってiOSアプリを作成している時に、iOS Simulatorに動画を保存するにはどうすればいいか調べた覚書。 環境: Titanium SDK 2.1.4, Xcode 4.5.2 参考にしたのは下記Site iPhone/iPadシュミレーターのカメラロールに動画を登録する方法 - 山本大@クロノスの日記   動画はApple SiteからDownloadする。 QuickTime: Sample files 動画をSimulatorにcopy $ Downloads/sample_mpeg4.mp4 Library/Application\ Support/iPhone\ Simulator/6.0/Media/DCIM/100APPLE/ 写真アプリの設定を削除 $ cd Library/Application\ Support/iPhone\ Simulator/6.0/Media $ mv PhotoData PhotoData.bak iOS Simulatorをたちあげて、Homeを長押しで写真アプリを削除する。 もう一度写真アプリを立ち上げればCopyした動画が見えるはず。   < Related Posts > Titanium Mobileを使ったAndroid, iOS App開発に役立つLink集 Command LineからTitanium Mobile AppをCompile(build)する

NginxにSSL(VeriSign)をInstall、設定

イメージ
VeriSignのSSL「グローバル・サーバID」をnginxにInstall、設定するまでの作業をMemo. 参考にしたのは下記Site. Apache + OpenSSL CSR生成手順 (新規)|CSRの生成|日本ベリサイン Apache + OpenSSL サーバIDインストール手順 (新規)|サーバIDのインストール|日本ベリサイン nginx で ssl 設定をする   秘密鍵(Key)と 証明書署名要求(CSR) を作成 疑似乱数を作成 # touch rand.dat # openssl md5 rand.dat > rand.dat 秘密鍵の作成 # openssl genrsa -rand rand.dat -des3 2048 > 2012key.pem 秘密鍵はBackupしておく。 証明書署名要求(CSR)を作成 # openssl req -new -key 2012key.pem -out 2012csr.pem   サーバIDと中間CA証明書のInstall VeriSignで手続きを済ませたら「サーバID」という証明書が送られてくる。 これに中間CA証明書を追記する。中間CA証明書は Official Site にLinkがある。 あとはnginxのconfを設定して再起動する。 こんな感じ server {     listen       443 ssl;     server_name  hoge.jp www.hoge.jp;     root    /home/httpd/hoge/httpdocs;     index   index.php index.html index.htm;     charset utf-8;     location = /robots.txt  { access_log off; log_not_found off; }     location = /favicon.ico { access_log off; log_not_found off; }     ssl on;     ssl_certificate      /etc/nginx/ssl.d/2012cert.pem;     ssl_certific

[Titanium Mobile] heightが動的に変化するときScrollViewを更新

イメージ
ScrollViewの中に TableView が入れ子になっていて、TableViewの行数が増えても自動的にScrollViewの高さが変化してくれなくてハマったときの覚書。 環境: Titanium SDK 2.1.4.GA scrollView = Titanium.UI.createScrollView({     layout: 'vertical',     showVerticalScrollIndicator: true,     contentHeight: 'auto',     top: 0 }); 中のViewを編集したあとに空のViewをScrollViewに追加すると更新(Refresh)できた。 scrollView.add(Titanium.UI.createView());   < Related Posts > Titanium Mobileを使ったAndroid, iOS App開発に役立つLink集 Command LineからTitanium Mobile AppをCompile(build)する

Apple Remote Desktopで使用しているPort番号

イメージ
外部(Singapore)から日本にあるMacにRemoteで接続するために調べた覚書。 Macに外部から接続するには、 VNC 関連アプリか Apple Remote Desktop が手っ取り早い。 ただRouterにPort Forwardingを設定するのがちょっと敷居が高い。 Apple Remote Desktop(ARD)で使用するPort番号はOfficial Siteを参考に。 Apple ソフトウェア製品で使われる一般的な TCP および UDP ポート   下記のような製品を使えば業者が全部やってくれると思うので、簡単かもしれない。 リモート コンピュータ アクセス: どこからでも自分の PC や Mac を操作 | LogMeIn Pro   < Related Posts > MacからWindowsにリモート接続する(リモートデスクトップ)

モルディブ(Maldives)に行って来ました。

イメージ
今月5日~10日は休暇をもらって モルディブ に行って来ました。 Paradise Island Resort View Maldives in a larger map こんな海は初めて。 鮫も激写 (^^; 写真は防水携帯Xperia Active (ST17i)で撮影。 島の周りはシュノーケリングで十分楽しめる。 せっかくなのでスキューバダイビングも1回だけやってみた。 PADI でオープンウォーターを取得していたので、ライセンスカードをもっていなくてもネットで検索して確認してもらえた。便利。 シンガポールからだと飛行機も含めて一人S$3000弱で行って帰ってこれるので、シンガポールに住んでいるならぜひ。   < Related Posts > SingaporeでScuba Diving(スキューバダイビング)【海洋ダイブ編】 ThailandのBangkokでThai Boxingを見てきた Android携帯Sony Ericsson製Xperia ActiveをM1 Shopで買った