其他分享
首页 > 其他分享> > IOS调起APP传参

IOS调起APP传参

作者:互联网

iOS两个独立的App之间的跳转实现:

URL

一个完整的URL组成包括:协议类型、服务地址、资源路径、请求参数,如果不是通过第三方平台的SDK来进行应用间的跳转,就需要开发者自己在链接中拼接对应需要传递的参数。一个NSURL封装的一个完整地址包括:协议、域名、路径、参数。

跳转原理

UIApplication类有一个方法:

- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");

这个方法是通过应用程序打开一个资源路径。比如一些我们经常用到的打电话、发短信、发邮件等等都会用到这个方法。

被跳转APP需要配置scheme协议,这样应用才能根据协议找到需要打开的应用。

跳转配置

在被跳转的app的Info.plist里面添加

第一种:

在这里,URL Schemes 的item的值是APP跳转过程中的key,也就是自定义的url协议

URL identifier就相当于参数,可以定义跳转的app的某一个具体功能页面,事件 ,也可不填

 

第二种:

跳转方法

 发起跳转app:

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"zcNightelf://"]]) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"zcNightelf://"] options:nil completionHandler:nil];
    }

被跳转app:

实现方法:

(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options

如果需要跳转到第二个应用的某个页面,需要设置跳转的URL。例如,需要跳转到第二个应用的第一个页面,url可以改为zcnightelf://one。然后在第二个应用的AppDelegate.m中,实现如下代码进行判断跳转至某个页面:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
    // 通过url的host判断需要跳转的页面进行处理
    if ([url.host isEqualToString:@"one"]) {

    }
    if ([url.host isEqualToString:@"two"]) {
 
    }
    return YES;
}

 

标签:传参,url,APP,URL,NSURL,跳转,app,调起,options
来源: https://blog.csdn.net/t1446242775/article/details/112376570