OpenUrl

作者: Bearger | 来源:发表于2017-08-01 20:25 被阅读13次

iOS-使用URL Schemes,进行应用之间跳转
iOS - JLRoutes路由跳转
官方文档
JLRoutes Git 项目地址

主要参考上面文章。看完上述几篇文章基本就可以扛抢上战场了。

下面只做下简单的笔记:

1. 添加scheme

scheme的添加是配置出来的,xcode中有两个地方可以进行配置,见下面两张图:

方式一.png 方式二.png

2. 添加白名单

应用A跳转到应用B需要将B的open url的scheme添加到白名单中(ios9+,参看iOS-使用URL Schemes,进行应用之间跳转),白名单也是配置,如下图

添加白名单.png

3. 发起跳转

        if UIApplication.shared.canOpenURL(URL(string: "Demo2Route2://post/edit/123?debug=true&foo=bar")!)
        {
            let options = [UIApplicationOpenURLOptionUniversalLinksOnly : false]
            UIApplication.shared.open(URL(string: "Demo2Route2://post/edit/123?debug=true&foo=bar")!, options: options, completionHandler: { (complete) in
                print("finished")
            })
        }

4.接收跳转

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        let routes = JLRoutes.global()
        routes.addRoute("/:object/:action/:primaryKey") { (params: [String : Any]) -> Bool in
            
            print(String(describing: params))
            return true
        }
        
        JLRoutes.init(forScheme: "Demo2Route1").addRoute("/:object/:action/:primaryKey") { (params:[String : Any]) -> Bool in
            print("---Demo2Route1---\n")
            print(String(describing: params))
            return true
        }
        JLRoutes.init(forScheme: "Demo2Route2").addRoute("/:object/:action/:primaryKey") { (params:[String : Any]) -> Bool in
            print("---Demo2Route2---\n")
            print(String(describing: params))
            return true
        }
        JLRoutes.init(forScheme: "Demo2Route3").addRoute("/:object/:action/:primaryKey") { (params:[String : Any]) -> Bool in
            print("---Demo2Route3---\n")
            print(String(describing: params))
            return true
        }
        return true
    }
    
    func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return JLRoutes.routeURL(url)
    }
    
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        return JLRoutes.routeURL(url)
    }

到这里,JLRoutes实现跳转的这条路已经走通了。如何应用就看自己项目需要了。细节什么的,通过实践以及查看文档就可以了。

相关文章

  • OpenURL

    // old- (BOOL)openURL:(NSURL*)url// new- (void)openURL:(N...

  • OpenURL

    参考 这个方法openURL 是别的应用打开我们的应用时调用的方法,分享需要调用'[[UMSocialManage...

  • OpenUrl

    打开自己的app设置界面 打开自己的通用设置界面 补充参考http://www.jianshu.com/p/ee6...

  • OpenUrl

    iOS-使用URL Schemes,进行应用之间跳转iOS - JLRoutes路由跳转官方文档JLRoutes ...

  • OpenURL

    目标 平常我们做iOS开发,会经常遇到打开其他的APP的功能。本篇文章讲的就是打开别人的APP的一些知识。我们的目...

  • openURL 在 iOS10中已弃用

    来源:openURL Deprecated in iOS10 苹果在iOS 2 推出了openURL:方法 作为一...

  • openURL:方法 (打电话 , 发短信)

    openURL:方法 UIApplication有个功能十分强大的openURL:方法 - (BOOL)openU...

  • iOS10 新变化之废弃的 openURL

    原文:iOS 10 新变化之废弃的openURL 作为UIApplication单例对象的方法 openURL: ...

  • 查看SDK调用支付宝参数

    使用runtime 方法交换openurl

  • iOS开发的常用小功能

    打电话 第一种方法:(openURL方法在iOS10的时候过期,使用openURL:options:complet...

网友评论

      本文标题:OpenUrl

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