類似於支付寶需要支付時需要跳轉到支付頁面,兩個簡單的程序之間的跳轉並傳值。
例如:有兩個App分別爲A和B,由A跳轉至B,
首先,要想一個應用能被其它應用打開,必須設置一個唯一的URL Scheme,設置方法爲在Project的info裏的URL Types裏面設置,
注意URL Scheme最好全用小寫字母,因爲系統調用的時候傳過來的URL Scheme全部變爲小寫字母。
在A的程序裏,
- (IBAction)onBtnOpenClick:(id)sender {
//liueaster爲要打開的應用的URL scheme,你好爲傳遞給該應用的參數
NSString *strUrl = @"liueaster://你好";
//因爲包括中文、空格等在內的很多字符不能出現在URL中,所以如果URL中必須包含這些信息則必須先進行轉碼,同樣接收方也必須進行反向替換
NSString* encodedString = [strUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSLog(@"encodedString: %@", encodedString);
NSURL *url= [NSURL URLWithString:encodedString];
[[UIApplication sharedApplication] openURL:url];
}
在B中應用中必須在AppDelegate中寫,
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//處理鏈接
NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//
//之後做一些自己需要的操作。。
return YES;
}