类似于支付宝需要支付时需要跳转到支付页面,两个简单的程序之间的跳转并传值。
例如:有两个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;
}