iOS学习笔记-开发中APP跳转

通过openURL: 可以实现app之间的跳转
NSURL *url = [NSURL URLWithString:@"yourappname://params"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }

跳转必须要设置plist文件中LSApplicationQueriesSchemes和URL types

LSApplicationQueriesSchemes:表示你可以跳转的APP名,就是上面的yourappname

URL types:表示你的APP名,别人通过这个来跳转你的APP

这里写图片描述

这里写图片描述

如图所示设置参数,填写item 0 为你要设置的appname

跳转处理

在AppDelegate.m中写下面这个方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

此处url,即为跳转传过来的url;我们进行处理:

NSString *str = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//这里取params 即不包括前边的appname://
NSString *str = [[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
//这里取完整的字符串

建议参数较多且含有“:”采用第二种;一般我们用openURL:来进行app之间的少量数据传输;如果数
据比较大,建议使用UIPasteboard,即跳转用URL实现,传值用UIPasteboard实现

参考 : http://blog.csdn.net/shengpeng3344/article/details/51404708

注意:
跳转的数据处理,请使用多线程,推出界面和UI相关请放到主线程才能保证跳转的流畅,不然停顿个十几秒,或者卡死,很正常;

多线程无非就是:

dispatch_async(dispatch_get_global_queue(0, 0), ^{

    //数据处理代码

    dispatch_async(dispatch_get_main_queue(), ^{
           //界面UI代码,如PUSH界面,展示弹出视图等
    });
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值