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;
}

  

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

  1. iOS开发小技巧--相机相册的正确打开方式

    iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...

  2. IE9 不F12打开控制台,代码不执行。打开后正常

    对每个前端er来说,提起来ie就是头大,各种兼容性的问题,让人头大.前两天就在ie9下遇到一个比较少见的问题. 具体情况是这样的: ie9下,js不执行,各种绑定事件不起作用.其他浏览器都6得飞起.当 ...

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

    在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和 ...

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

    为了创建或打开一个网络数据集,你必须使用NetworkDatasetFDExtension对象(文件地理数据库中的数据集)或NetworkDatasetWorkspaceExtension对象(对于S ...

  5. 安装pycharm软件后,打开robot framework怎么默认用pycharm打开

    1.打开ride.py的属性,修改打开方式

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

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

  7. 几个主流浏览器 Window.open打开新窗口 、模拟a标签打开新窗口的 表现

    Window.open打开新窗口 1.常用浏览器打开新窗口(正常打开window.open)的的不同表现形式(PC/移动端) 2.Window.open在异步处理中打开(_blank) a标签在异步处 ...

  8. iOS刚进入后台接受推送、打开推送调转到相应的界面

    刚进入后台的时候消息处理时候我用了本地推送!可以看我前边写的博客,怎么处理刚进入后台接收推送的案例,链接 /** 注释:打开推送的三种方式:-peter 1.apns的时候,结束进程退出后台:启动的时 ...

  9. Mac iOS 允许从任何来源下载应用并打开

    一个快捷的小知识点,mark! 允许从任何来源下载应用并打开,不用手动去允许,更加简洁! 只需一行命令 sudo spctl --master-disable 1.正常情况下,打开偏好设置,选择安全性 ...

  10. [ios] 如何调用其他app h5界面调用打开app

    参考资料:app唤醒app h5唤醒app 有趣的URL Scheme 被唤起端需要做的工作(demoApp): 1.设置URL Scheme  只是一个app的标识  具体是什么自己定  一个Sch ...

随机推荐

  1. OpneCV 二值图像区域处理

    //--------------------------------------[程序说明]------------------------------------------- // 在图像处理中总 ...

  2. javaWeb1 tomcat

    tomcat使用常见问题: 1.闪退: 原因:tomcat 软件是由java语言开发的,当它启动时,会默认到系统 的环境变量中查找 JAVA_HOME 的变量.找它的目的时tomcat 启动 时需要j ...

  3. Spring表达式语言 之 5.3 SpEL语法(拾肆)

    5.3  SpEL语法 5.3.1  基本表达式 一.字面量表达式: SpEL支持的字面量包括:字符串.数字类型(int.long.float.double).布尔类型.null类型. 类型 示例 字 ...

  4. 青少年如何使用 Python 开始游戏开发

    这是一篇由教程团队成员Julian Meyer发表的文章,一个12岁的python开发人员.你可以在Google+和Twitter上找到他. 你可曾想过如何创建视频游戏吗?它不像你想象的那么复杂! 在 ...

  5. DSP EPWM学习笔记1 - EPWM定时中断

    DSP EPWM学习笔记1 - EPWM定时中断 彭会锋 EPWM模块组成 EPWM有7个子模块组成:时间基准 TB.比较功能 CC.动作限定 AQ.死区产生 DB.斩波控制 PC.故障捕获 TZ.事 ...

  6. Scrum项目6.0

    sprint演示 1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉很好. 其他人可以了解你的团队在做些什么,并得到重要反馈. 演示是一种社会活动,不同的团队可以在这里相互交流,讨论 ...

  7. centos修改文件及文件夹权限

    查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...

  8. Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  9. Div样式查看器

    编写div属性时,经常需要尝试不同的样式,可以用Javascript写一个简单的div样式查看器,方便日常操作: <!DOCTYPE html> <html> <head ...

  10. Objective-C:@class和#import

    @class和#import是OC中引用一个类的两种方式,其区别在于: #import相当于把被引用文件的内容拷贝到目标文件,这会包含被引用类的所有信息,包括被引用类的变量和方法(会降低编译性能 ): ...