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;
}
IOS打开其他应用、以及被其他应用打开的更多相关文章
- iOS开发小技巧--相机相册的正确打开方式
iOS相机相册的正确打开方式- UIImagePickerController 通过指定sourceType来实现打开相册还是相机 UIImagePickerControllerSourceTypeP ...
- IE9 不F12打开控制台,代码不执行。打开后正常
对每个前端er来说,提起来ie就是头大,各种兼容性的问题,让人头大.前两天就在ie9下遇到一个比较少见的问题. 具体情况是这样的: ie9下,js不执行,各种绑定事件不起作用.其他浏览器都6得飞起.当 ...
- 在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象。你可能没有合适的权限”
在win2008 r2主域控制域上打开“组策略管理”报错“未打开组策略对对象.你可能没有合适的权限” 打开组策略管理其它选项提示:找不到指定路径.之前做过的操作:取消域控主机上的共享目录sysvol和 ...
- ArcGIS 网络分析[8.1] 资料1 使用AO打开或创建网络数据集之【打开】
为了创建或打开一个网络数据集,你必须使用NetworkDatasetFDExtension对象(文件地理数据库中的数据集)或NetworkDatasetWorkspaceExtension对象(对于S ...
- 安装pycharm软件后,打开robot framework怎么默认用pycharm打开
1.打开ride.py的属性,修改打开方式
- 解决当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭)的问题
当打开Unity时 提示项目已经打开,而自己之前并没有打开过(可能之前异常关闭) 发生这种情况时 打开项目目录中的 Temp文件夹,可以找到 一个 UnityLockfile 文件 将这个文件删除就可 ...
- 几个主流浏览器 Window.open打开新窗口 、模拟a标签打开新窗口的 表现
Window.open打开新窗口 1.常用浏览器打开新窗口(正常打开window.open)的的不同表现形式(PC/移动端) 2.Window.open在异步处理中打开(_blank) a标签在异步处 ...
- iOS刚进入后台接受推送、打开推送调转到相应的界面
刚进入后台的时候消息处理时候我用了本地推送!可以看我前边写的博客,怎么处理刚进入后台接收推送的案例,链接 /** 注释:打开推送的三种方式:-peter 1.apns的时候,结束进程退出后台:启动的时 ...
- Mac iOS 允许从任何来源下载应用并打开
一个快捷的小知识点,mark! 允许从任何来源下载应用并打开,不用手动去允许,更加简洁! 只需一行命令 sudo spctl --master-disable 1.正常情况下,打开偏好设置,选择安全性 ...
- [ios] 如何调用其他app h5界面调用打开app
参考资料:app唤醒app h5唤醒app 有趣的URL Scheme 被唤起端需要做的工作(demoApp): 1.设置URL Scheme 只是一个app的标识 具体是什么自己定 一个Sch ...
随机推荐
- windows多线程框架
#include <iostream> #include <windows.h> using namespace std; HANDLE hMutex; //public : ...
- Jni碰到的一个异常
Java与C++都有String对象,而c没有,只有char类型,所以在向C传入String类型的时候,如何处理需要注意一点 jstring Java_com_skymaster_hs_test4_M ...
- OpenCV白平衡算法之灰度世界法(消除RGB受光照影响)
在用OpenCV对图像进行处理时,利用颜色定位是常常会接触到的方法,但RGB受光照影响比较严重,转换到HSV XYZ等空间也解决不了时, 可以用白平衡算法进行修正,使其发黄.发蓝.发红的照片更加趋于自 ...
- osx 10.11.5 El Capitan U盘制作安装
osx 10.11.5 El Capitan U盘制作安装 1. 下载osx10.11.5 从mac的 appstore下载(官方原版) 2. U盘8G起(注意备份重要资料) 3. 下载完成之后在Fi ...
- css的两种盒子模型
css的两种盒子模型:W3C标准盒子模型.IE盒子模型 两者的相同之处:都包含margin.border.padding.content 两者的不同之处:W3C标准盒子模型的content部分不包含其 ...
- hdu-----(1150)Machine Schedule(最小覆盖点)
Machine Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 给文本标签UILabel添加长按复制功能
http://www.111cn.net/sj/iOS/104236.htm http://blog.csdn.net/lrenjun/article/details/12582927 自定义一个可复 ...
- 百度地图API:利用瓦片生成工具,自定义背景图片
参考酸奶小妹的博文<[百度地图API]如何制作一张魔兽地图!!——CS地图也可以,哈哈哈> (http://www.cnblogs.com/milkmap/archive/2011/05/ ...
- 转:Struts2<s:iterator value="" var="lst">中var的使用和一些标签的使用体会
比如<s:iterator value="pmOperateList" var="lst"> <!-- iterator加上var 等价于重新 ...
- Generic泛型
1.问题 未使用泛型时,元素的类型不安全:操作麻烦,可能需要强制转换import java.util.ArrayList;import java.util.List;import org.junit. ...