タブの使用/不使用による挙動の違い

テーブルを表示するサンプルソース
tableは中略で作ってると脳内補完。

タブを使う

/********** ウィンドウ **********/
var win = Ti.UI.createWindow
({
    title           : 'hoge',
    backgroundColor : '#fff'
});
/********* /ウィンドウ **********/

/********** タブ **********/
var tab = Titanium.UI.createTab
({
    title  : 'hoge',
    icon   : 'KS_nav_views.png',
    window : win
});
/********* /タブ **********/

//中略

win.add(table);
tab.open(win);

完全な新規ウィンドウで立ち上がるので、Androidの戻るボタン押下で前の画面に戻れる。

タブを使わない

/********** ウィンドウ **********/
var win = Ti.UI.createWindow
({
    title           : 'hoge',
    backgroundColor : '#fff'
});
/********* /ウィンドウ **********/

//中略

win.add(table);
win.open();

既存ウィンドウの中身を書き換えている(?)ので、Androidの戻るボタン押下で前の画面に戻れない。
タブの内容も直前ページのものを引き継ぐ。

xmlをちょめちょめ

サンプルxml

<?xml version="1.0" encoding="utf-8" ?>
<data>
    <response_code>200</response_code>
    <cnt>0</cnt>
    <onetime_pw>9ByKA1IV61GZx0ootbcJ5ijSrCD1WA095QEjivbRQknSec4BGLLTY56J8eR0iLx5</onetime_pw>
</data>

JavaScript

$(xml).find("response_code").each
(
    function ()
    {
        alert( $(this).text() );
    }
);

$(xml).find("cnt").each
(
    function ()
    {
        alert( $(this).text() );
    }
);

$(xml).find("onetime_pw").each
(
    function ()
    {
        alert( $(this).text() );
    }
);

まとめ

  • xml先頭の<?xml version="1.0" encoding="utf-8" ?>は無視される。
  • xmlのルート(この場合は)以下が$(xml)における解析の対象となる。

フォームのテキストやラジオから値を取る

  • nameから
    • text
      • $("input[name=hoge]:input").val()
      • $("input").filter("[name='hoge[" + y + "]']").val()
    • textarea
      • $("textarea[name=hoge]").val()
    • radio
      • $("input[name=hoge]:checked").val()
      • $("input[name='hoge[" + fuga+ "]']:checked").val()
    • select
      • $("select[name=hoge]").val()
    • checkbox
      • $("input[name=hoge]").prop("checked")
      • $("input[name='hoge[fuga]']").prop("checked")
        • true / false

スタティックなメンバ変数はインスタンスが複数でも状態を共有する

<?php
class Hoge
{
	public static $fuga = 100;

	public function print_fuga()
	{
		print self::$fuga . "<br />";
	}
}


$o_hoge1 = new Hoge();
$o_hoge1->print_fuga();    //100

$o_hoge1::$fuga = 200;

$o_hoge2 = new Hoge();
$o_hoge2->print_fuga();    //200

ウォール投稿時のcaption仕様

文字数チェックは1000文字で行われる。
よって半角文字1000個、全角文字1000個の両方が投稿成功となる。


しかし実際投稿できるのは1000byteまで。
全角文字のみの場合、utf-8なので、333文字が上限となる。


なので全角334文字以上を投稿しようとした場合、レスポンスコードは200(成功)が返ってくるが、実際には正常投稿できておらず、「...」と表示される。

Facebookのコンテンツをスクレイピング

<?php
$data = file_get_contents('http://hoge.com');

としても対応していないブラウザうんたらかんたらという結果が返ってくる。

<?php
$context = stream_context_create
(
  array
  (
    'http' => array
              (
                'method' => 'GET',
                'header' => 'User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7',
              )
  )
);
$data = file_get_contents('http://hoge.com', false, $context);

これでOK!