IOS打开其他应用、以及被其他应用打开

1、打开其他应用

appURLStr = "cwork://app_id?title=xxx&content=xxx"

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:appURLStr]];

  • 需要对方应用在Info.pist中配置:

如此便能将对方应用调起。

2、被其他应用打开

(1)同上图所示,需要自己在info.plist中配置,别人掉起自己,其中identifer没什么用,主要是URL Schemes,它会用来拼接被调起的url:如:cwork://xx-id?parame1 = "1" & parame2="2"

a、程序已经运行时,会唤起appdelegate中的代理:

#define CWorkURLScheml      @"cwork://"
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    if (!url){
        return NO;
    }

    NSString *URLString = [url absoluteString];
    监听被谁调起
    if ([URLString rangeOfString:CWorkURLScheml].length > 0) {
    }
    return YES;
}

     b、 程序首次被启动时:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSURL *aLaunchOptionsURL = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
    // 被其他应用唤醒监听,解析
    if ([aLaunchOptionsURL.absoluteString hasPrefix:CWorkURLScheml]) {
    }
	return YES;
}

  

(2) 然后url中带有参数,可以对url进行解析,以"?"为分隔符,对两边参数进行解析

+ (NSDictionary *)urlPropertyValue:(NSString *)aURLStr
{
    NSArray *aList = [aURLStr componentsSeparatedByString:@"?"];
    if (aList.count < 2) {
        return nil;
    }
    NSMutableDictionary *aDict = [NSMutableDictionary dictionary];
    NSString *rootPath = [aList objectAtIndex:0];
    [aDict setObject:rootPath forKey:@"rootPath"];
    NSString *aValueStr = [aList objectAtIndex:1];
    NSArray *aList1 = [aValueStr componentsSeparatedByString:@"&"];
    for (NSString *aStr in aList1) {
        NSArray *l = [aStr componentsSeparatedByString:@"="];
        if (l.count == 2) {
            NSString *k = [l objectAtIndex:0];
            NSString *v = [l objectAtIndex:1];
            [aDict setObject:v forKey:k];
        }
    }
    return aDict;
}

  

时间: 2024-10-17 14:40:48

IOS打开其他应用、以及被其他应用打开的相关文章

文件打开后任务栏里面不显示打开的文件名称

打开EXCEL文件时发现任务栏里面不显示打开文件的名称,当时的任务栏没有设置为自动隐藏,这就奇怪了.问度娘,说CTRL+ALT+DELETE打开任务管理器,新建任务,试了一下还是没有解决,最后没办法,在任务管理器里面把一些不需要的进程给结束了,当我把IE浏览器的进程结束后,任务栏立马就显示出刚才打开文件的名称.怪哉!没搞清楚他们之间的原因,但总归解决了问题,此法供大家参考! 文件打开后任务栏里面不显示打开的文件名称,布布扣,bubuko.com

WinXP系统打开Word文档会弹出“打开方式”界面怎么办

WinXP系统打开Word文档会弹出"打开方式"界面怎么办 Word是微软公司开发的一个文字处理器应用程序,我们在日常办公中经常会使用到它.不过,最近有些XP系统用户反馈,电脑已经安装过Office,不过在打开Word文档时,总会弹出打"打开方式"界面,并提示选择你想用来打开此文件的程序,这该如何解决呢? 原因分析: 如果XP系统xitongcheng.com/xp/中安装过Office软件,而现在出现打开方式的界面,很有可能是文件关联出错了,或是你安装过别的Off

ArcGIS 网络分析[8.1] 资料1 使用AO打开或创建网络数据集之【打开】

为了创建或打开一个网络数据集,你必须使用NetworkDatasetFDExtension对象(文件地理数据库中的数据集)或NetworkDatasetWorkspaceExtension对象(对于Shp文件组成的网络数据集). 当你拥有了合适的对象后,就可以使用IDatasetContainer2接口去创建或者打开网络数据集了. 如果当前打开的Map对象中有网络数据集图层,那么就可以通过访问INetworkLayer接口的NetworkDataset字段来访问网络图层中的网络数据集. IDat

解决当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭)的问题

当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭) 发生这种情况时 打开项目目录中的 Temp文件夹,可以找到 一个 UnityLockfile 文件 将这个文件删除就可以正常打开了

php文件怎么打开? 教你用什么软件打开php文件

php文件相信很多电脑老手也不知道吧?今天有电脑电脑百事网网友问了编辑这个问题:“php文件怎么打开?”,其实大家并非是需要去打开php文件,多数只是因为下载东西,错误的下载到成了网页文件,主要是下载站中的下载连接其实是php脚本文件控制的,有的不支持一些下载工具下载,防止大量占用网站服务器资源,当使用讯雷下载的连接就会失效,也可能是服务器链节地址失效,导致下载到的东西只是也个php脚本文件,根本不是你要查找的相关资料,不信大家可以使用记事本打开,里面全部是php英文语法脚本,解决办法大家可以使

在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象。你可能没有合适的权限”

在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和netlogon.关闭域控主机上和客户机上的“文件共享和打印机共享”. 现在打开域控主机上的组策略管理报上述两种错误.解决方法:1.C盘下搜索sysvol,找到该目录,恢复共享.2.域控主机及客户机启用文件和打印机共享3.开始---运行---services.msc----重新启动Netlogon服

WAMP安装,localhost无法打开,127.0.0.1可以打开

WAMP安装,localhost无法打开,127.0.0.1可以打开 错误提示:403 Forbidden You don't have permission to access / on this server. 打开httpd.conf文件,修改httpd.conf文件,只需要2步骤,修改代码,然后重启Apache服务器,搞定. 1.修改以下代码: <Directory /> Options FollowSymLinks AllowOverride None Order deny,allo

IOS UTI(统一类型标识符) 根据文件后缀打开APP

前言 最近项目中有个需求,在iOS设备上使用iOS系统提供的内容分享功能,从第三方App应用直接分享实体内容到我们的应用中.其大概的原理是这样的,首先为我们的iOS应用注册可以打开document types(文档类型),然后在第三方应用中,如果它们使用了iOS提供的分享功能,那么就会看到我们的应用程序,点击进行分享.而关于需求的设计和实现的具体思路,我会在下一篇博客中详细讲解.这篇文章是来讲一下苹果在iOS和OS X系统中为了更好的进行类型识别,而提供的一套统一的规范,也就是标题中提到的"Un

iOS 中判断应用程序是否为第一次打开

第一步:在AppDelegate中当应用启动完成后加入一下代码: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然

【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口

一.布局和容器控件 1.布局属性 - Anchor  控件定位锁死在那个位置,根据哪个位置锁死. - Dork     填充满.填充上下左右. - Location  位置. 2.容器控件 - Panel  相当于html中的div. - FlowLayoutPanel  继承自Panel,多了流式布局功能 - GroupBox    继承自Panel,多了一个标题,有小虚线. - TabControl  选项卡 选项卡修改标题,用选项卡的TabPages属性,在每个选项卡标题对应的Text属性