ios俩个APP之间跳转、传值
转载自:http://www.mamicode.com/info-detail-106580.html
两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的。
1.首先设置第一个APP的url地址

2.接着设置第二个APP的url地址

3.需要跳转的时候
NSString *urlString = [NSString stringWithFormat:@"AppJumpSecond://%@",textField.text]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
我这里将textField的文字也传过去
同样的,在第二个页面也是如此
NSString *urlString = [NSString stringWithFormat:@"AppJumpFirst://%@",textField.text]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];
这样就能相互跳转了
4.处理传过去的数据
在上面传了textField的数据,接收时在AppDelegate的
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation方法里。
在AppDelegate里设置属性
@property (nonatomic, strong) RootViewController *rvc;
在didFinishLaunchingWithOptions方法里添加
self.rvc = [[RootViewController alloc] init]; UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:self.rvc]; self.window.rootViewController = nc;
添加代码块
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
self.rvc.textField.text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
return YES;
}
使得textField显示另一个页面传过来的数据。
个人总结和理解:
1.APP之间的跳转传值的主要用途:用于授权系统的时候,比如跳转到QQ获取QQ授权权限,,或者是制作客户端APP授权系统的framework时。
2.针对不同系统采用不同的API:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0);
浙公网安备 33010602011771号