通过url链接跳转到自己的app上

作者: xiao小马哥 | 来源:发表于2016-05-25 11:16 被阅读1976次
69.jpg

公司要通过一个推送短信,用户点击短信上的链接跳转到我们的app上,其实在网上有很多的教程,也有很多的框架,自己在这写一个比较简单的方法,就可以实现这个功能,希望能帮助大家!

首先谈谈URL Scheme的作用

我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。

例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是你的手机装了支付宝。如果你没有装支付宝,应该显示的是支付宝下载界面,点击会跳到AppStore的支付宝下载界面。

URL Scheme必须能唯一标识一个APP,如果你设置的URL Scheme与别的APP的URL Scheme冲突时,你的APP不一定会被启动起来。因为当你的APP在安装的时候,系统里面已经注册了你的URL Scheme。

一般情况下,是会调用先安装的app。但是iOS的系统app的URL Scheme肯定是最高的。所以我们定义URL Scheme的时候,尽量避开系统app已经定义过的URL Scheme。

注册URL Scheme

1.在info.plist里添加URL types

每一个项目里面都会有一个info.plist配置文件。找到info.plist,右键选择Add Row,然后选择URL types。如图所示:

94136FF9-FF50-4DA2-B228-CD27B31CFE20.png
这样就添加成功了
在记事本或者Safari里输入链接如:testHello://machao/1/xxx
点击这个链接就会启动我们的程序,如果想解析对应的内容跳转到对应的界面只需要在Appdelegate的-(BOOL)application: openURL: options:的方法里判断传入进来的url链接后面的参数,进行不同的操作即可
 if ([urlStr hasPrefix:@"testHello"]){
      NSArray *array = [urlStr componentsSeparatedByString:@"/"];
    NSLog(@"%@",array);
 if ([array[3] isEqualToString:@"1"]) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"selectIndexpath" object:nil userInfo:@{@"select":array[3]}];
  }
}

相关文章

网友评论

  • zhao1zhihui:没问题了可能是app杀死了
  • zhao1zhihui:怎么解决的我的也不走回调
  • 罗小耳:我的应用跳转了,可是没办法传参是什么原因
    罗小耳:@Carry超仔 后来解决了,是Appdelegate方法调用的问题,谢谢:blush::blush::blush:
    xiao小马哥:@伶罗愁簖 参数就拼接在URL后面就好了,你是怎么跳转的详细说一下啊!

本文标题:通过url链接跳转到自己的app上

本文链接:https://www.haomeiwen.com/subject/yrctdttx.html