一,在.plist中的URL types中的URL schemes 加入自己想要的協定名稱,例如myApp
(非必要)在URL identifier加入自已想要的identifier文字,例如me.spot0206
二,在AppDelegate實作- (BOOL)application:(UIApplication *)applicationhandleOpenURL:(NSURL*)url { // Do something withthe url here },用來接收回傳的訊息
三,即可以在其他APP中被呼叫,你可以用safari的網址列來自行測試。
例如輸入,myapp://?foo=1&
四,這裡打的網址就會被接收為下面的url
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if (!url) { return NO; }
NSString *URLString = [urlabsoluteString];
[[NSUserDefaultsstandardUserDefaults] setObject:URLString forKey:@"url"];
[[NSUserDefaultsstandardUserDefaults] synchronize];
return YES;
}
2013年7月4日 星期四
FacebookSDK3.5開始新專案前的設定
一,跳過FB app id申請,直接進入ios app撰寫
二,把解壓好的資料夾中(文件裡的facebooksdk)的FacebookSDKResources.bundle直接拖曳進你的專案。(選項選'Create groups for any added folders' and deselect 'Copy items into destination group's folder (if needed)')


三,在iOS6中,facebookSDK還要用到AdSupport, Accounts, libsqlite3, Security and Social這五個Frameworks.(如果你要build在舊版iOS,記得把不支援的Framework設為Optional)
四,上述動作作好之後,你的Project看起來會像下圖

五,把申請好的Facebook app ID,加入下列二個地方,你就可以開始coding了!
二,把解壓好的資料夾中(文件裡的facebooksdk)的FacebookSDKResources.bundle直接拖曳進你的專案。(選項選'Create groups for any added folders' and deselect 'Copy items into destination group's folder (if needed)')


三,在iOS6中,facebookSDK還要用到AdSupport, Accounts, libsqlite3, Security and Social這五個Frameworks.(如果你要build在舊版iOS,記得把不支援的Framework設為Optional)
四,上述動作作好之後,你的Project看起來會像下圖

五,把申請好的Facebook app ID,加入下列二個地方,你就可以開始coding了!
- 在.plist中加入FacebookAppID跟FacebookDisplayName,把他的值設好,在fb app設定頁面中都可以找的到你得輸入的值。
- 打開URL types,把URL Schemes的item0設為開頭為fb,後面加你的Facebook App ID。

2013年7月2日 星期二
在UIWebView執行JavaScript指令
用簡單的一個method即可達成,stringByEvaluatingJavaScriptFromString
它把指令以string方式讀入,並把回傳值以string的方式接收。
- (NSString*)executeJS
{
NSString *returnValue = [self.webView stringByEvaluatingJavaScriptFromString:@"marq.appMessage('fb_status','{\"username\":\"LukeSun\",\"profile_pic\":\"http://4-ps.googleusercontent.com/h/www.nownews.com/newspic/1989/i1989627.jpg.pagespeed.ce.wapOg-_ZEz.jpg\" }' )"];
NSString* ret = [returnValue stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"return string: %@",ret);
return ret;
}
它把指令以string方式讀入,並把回傳值以string的方式接收。
- (NSString*)executeJS
{
NSString *returnValue = [self.webView stringByEvaluatingJavaScriptFromString:@"marq.appMessage('fb_status','{\"username\":\"LukeSun\",\"profile_pic\":\"http://4-ps.googleusercontent.com/h/www.nownews.com/newspic/1989/i1989627.jpg.pagespeed.ce.wapOg-_ZEz.jpg\" }' )"];
NSString* ret = [returnValue stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"return string: %@",ret);
return ret;
}
程式處理網址的encoding跟decoding問題
因為網址列不能存在一些特殊符號,所以這些符號會使用﹪當作逃脫字元來處理
例如%7 = ~
%09 表示 Tab
%20 表示 (1sp) 即一個space鍵
%22 表示 "
%23 表示 #
%25 表示 %
%26 表示 &
%28 表示 (
%29 表示 )
%2B 表示 +
%2C 表示 ,
%2F 表示 /
%3A 表示 :
%3B 表示 ;
%3C 表示 <
%3D 表示 =
%3E 表示 >
%3F 表示 ?
%40 表示 @
%5B 表示[
%5C 表示 \
%5D 表示]
%7C 表示
%7E 表示 ~
在objective-c用下列二個方法做網址的編碼
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 會將網址以 UTF-8來編碼。
例如%7 = ~
%09 表示 Tab
%20 表示 (1sp) 即一個space鍵
%22 表示 "
%23 表示 #
%25 表示 %
%26 表示 &
%28 表示 (
%29 表示 )
%2B 表示 +
%2C 表示 ,
%2F 表示 /
%3A 表示 :
%3B 表示 ;
%3C 表示 <
%3D 表示 =
%3E 表示 >
%3F 表示 ?
%40 表示 @
%5B 表示[
%5C 表示 \
%5D 表示]
%7C 表示
%7E 表示 ~
在objective-c用下列二個方法做網址的編碼
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding 會將網址以 UTF-8來編碼。
NSString *encodeURL = [URL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"encode URL: %@", encodeURL);
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding 會將被編碼的文字以 UTF-8 解碼。
NSString *decodeURL = [encodeURL stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"decode URL: %@", decodeURL);
2013年7月1日 星期一
An unknown error message 'InstallProhibited', was received from the device.
當安裝程式在實機測試時出現An unknown error message 'InstallProhibited', was received from the device.的錯誤訊息
代表這台機器設定了取用限制,去設定﹣>一般﹣>取用限制,輸入密碼把它解開即可。
代表這台機器設定了取用限制,去設定﹣>一般﹣>取用限制,輸入密碼把它解開即可。
NSString NSURL UTF8
//把string以UTF8編碼
NSString* returnValue =
[URLstring stringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding];
例如:
//要先將中文地址轉成UTF8型式,才可做為查詢網址。
NSString* address = [@"台北巿南港區三重路19-11號" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://maps.apple.com/maps?q=%@",address]]];
//NSURL to NSString NSURL
NSString *returnValue = [URL absoluteString];
NSString* returnValue =
[URLstring stringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding];
例如:
//要先將中文地址轉成UTF8型式,才可做為查詢網址。
NSString* address = [@"台北巿南港區三重路19-11號" stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:@"http://maps.apple.com/maps?q=%@",address]]];
//NSURL to NSString NSURL
NSString *returnValue = [URL absoluteString];
訂閱:
文章 (Atom)