2012年5月29日 星期二

titanium url cheme設定

SDK 2.0.1 GA2下
Titanium 會自動設定url scheme
預設是application id最後單字
例如 com.demo.theappname
url scheme就是theappname

不過有一各小例外
當使用 us.adison.TheAppName時
url scheme是Theappname(只有首字大寫)
如果還是有問題,打開builer下的檔案檢查看看
iPhone: builder/iphone/info.list
        <key>CFBundleURLName</key>
                        <string>com.demo.theappname</string>
                        <key>CFBundleURLSchemes</key>
                        <array>
                                <string>看這邊</string>

android
builder/android/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.demo.theappname 這邊" android:versionCode="1"
        android:versionName="1">

使用url scheme的方式可以參考
http://developer.appcelerator.com/question/120393/custom-url-scheme---iphone--android

// Save initial launch command line arguments
Ti.App.launchURL = '';
Ti.App.pauseURL = '';
var cmd = Ti.App.getArguments();
if ( (getTypeOf(cmd) == 'object') && cmd.hasOwnProperty('url') ) {
Ti.App.launchURL = cmd.url;
Ti.API.info( 'Launched with url = ' + Ti.App.launchURL );
}

// Save launch URL at the time last paused
Ti.App.addEventListener( 'pause', function(e) {
Ti.App.pauseURL = Ti.App.launchURL;
});

// After app is fully resumed, recheck if launch arguments
// have changed and ignore duplicate schemes.
Ti.App.addEventListener( 'resumed', function(e) {
Ti.App.launchURL = '';
cmd = Ti.App.getArguments();
if ( (getTypeOf(cmd) == 'object') && cmd.hasOwnProperty('url') ) {
if ( cmd.url != Ti.App.pauseURL ) {
Ti.App.launchURL = cmd.url;
Ti.API.info( 'Resumed with url = ' + Ti.App.launchURL );
}
}
});

沒有留言: