カテゴリー : 2012年 8月

[Titanium Mobile] スプラッシュスクリーンを表示させない方法

Titanium Mobile にて、スプラッシュスクリーンを表示させない方法を「QA@IT」で教えてもらったのでメモ。

Titanium Mobileでスプラッシュスクリーンを非表示にする方法 – QA@IT はてなブックマーク - Titanium Mobileでスプラッシュスクリーンを非表示にする方法 - QA@IT

■ iOS

iOSの場合、表示しない方法はありません。どうしてもという場合は例えば黒で塗りつぶした画像を使ってtransitionを使わないことで代用できます。しかしAppleのHuman Interface Guidelineのコンプライアンスに違反するかもしれないのでお勧めできません。そもそも初期化のプロセスは必ず発生しますので、そこで画面がブラックアウトしてしまったりするのは好ましくないでしょう。

■ Android

なんでもありのAndroidの場合は、一度ビルドしてからプロジェクトのディレクトリ/build/android/res/values/theme.xmlを編集します。

<style name="Theme.Titanium" parent="android:Theme.NoTitleBar">
  <item name="android:windowBackground">@drawable/background</item>
</style>

これを下のようにします:

<style name="Theme.Titanium" parent="android:Theme.NoTitleBar">
</style>

以上です。

[Javascript] オブジェクトが空か判定・判別する方法

JavaScript で、オブジェクトのプロパティが一個以上あるかどうかを調べるには、Object.keys を使って下記のように書けます。

var hoge = { 
    fuga: 1,
    moga: 2,
};
 
console.log(Object.keys(hoge).length === 2); // true

【参考】

javascript の オブジェクトが空かどうかを調べる場合 – Node.js日誌β はてなブックマーク - javascript の オブジェクトが空かどうかを調べる場合 - Node.js日誌β

keys | Mozilla Developer Network はてなブックマーク - keys | Mozilla Developer Network

[Titanium Mobile][ERROR] Script Error = Parse error (unknown file)

Titanium Mobile で下記のようなエラーが発生する場合は、JavaScriptのシンタックスエラーが原因です。

[ERROR] Script Error = Parse error (unknown file)
Terminating app due to uncaught exception of class ‘__NSCFDictionary’
terminate called throwing an exception

直近に修正したコードがJavaScriptの文法的に正しいか確認しましょう。

以上です。

【参考】

SDKエラー例 [アプリ作家見習いメモ] はてなブックマーク - SDKエラー例 [アプリ作家見習いメモ]

App suddently throws parse error » Community Questions & Answers » Appcelerator Developer Center はてなブックマーク - App suddently throws parse error » Community Questions & Answers » Appcelerator Developer Center

[Titanium Mobile] Viewの背景色を透明にする方法

Titanium Mobile にて、Viewの背景色を透明にするには、createView で backgroundColor に ‘transparent’ を設定すればOKです。

var view = Ti.UI.createTableView({
    width : 320,
    backgroundColor : 'transparent',
});

以上です。

[Javascript] HTMLエスケープを行う htmlspecialchars

Javascript で HTML において特殊な意味を持つ文字のエスケープを行うPHP関数 htmlspecialchars を実装するコードをメモ。

function htmlspecialchars(ch) { 
    ch = ch.replace(/&/g,"&amp;") ;
    ch = ch.replace(/"/g,"&quot;") ;
    ch = ch.replace(/'/g,"&#039;") ;
    ch = ch.replace(/</g,"&lt;") ;
    ch = ch.replace(/>/g,"&gt;") ;
    return ch ;
}

【参考】

Javascript で HTMLエスケープを行うPHP関数、htmlspecialchars を実装:phpspot開発日誌 はてなブックマーク - Javascript で HTMLエスケープを行うPHP関数、htmlspecialchars を実装:phpspot開発日誌

[PostgreSQL] ERROR: missing FROM-clause entry for table

PostgreSQL にて ERROR: missing FROM-clause entry for table というエラーが発生した場合の対応方法をご紹介します。

PostgreSQL

続きを読む

[Titanium Mobile] invalid method (createCoverFlowView) passed to UIModule

Titanium Mobile で下記のようなエラーが発生しました。

[WARN] attempted to load: TiUICoverFlowViewProxy
[WARN] Exception in event callback. {
    line = 22;
    message = "invalid method (createCoverFlowView) passed to UIModule";
    sourceId = 225212864;
}

新しい種類のコンポーネントを追加した後に、このようなエラーが発生することがあるみたいです。

One thing to remember is that when you do a full build Titanium removes unused components from their API. So if you are adding a new type of component, for example, there are no textAreas in your app, and then you add a textArea, you may get this error.
The solution is to force a total rebuild by clearing out the contents of your build/iphone directory

build 以下のファイルを削除してから、もう一度ビルドすると正常に動作しました。

rm -rf build/iphone

以上です。

【参考】

Invalid method (createToolbar) passed to UIModule on device » Community Questions & Answers » Appcelerator Developer Center はてなブックマーク - Invalid method (createToolbar) passed to UIModule on device » Community Questions & Answers » Appcelerator Developer Center

[Shell Script] /bin/bash^M: bad interpreter: No such file or directory

シェルスクリプトを実行したら、エラーが発生しました。

/bin/bash^M: bad interpreter: No such file or directory

原因は、Windowsの改行コード CR/LF になっているせいみたいでした。

Linuxの改行コード LF に変換すれば正常に実行できました。

【参考】

シェルを実行できない失敗例「/bin/bash^M: bad interpreter: No such file or directory」の原因と解決策 – r_nobuホームページ はてなブックマーク - シェルを実行できない失敗例「/bin/bash^M: bad interpreter: No such file or directory」の原因と解決策 - r_nobuホームページ