iOS-使用URL Schemes次乓,進(jìn)行應(yīng)用之間跳轉(zhuǎn)
iOS - JLRoutes路由跳轉(zhuǎn)
官方文檔
JLRoutes Git 項(xiàng)目地址
主要參考上面文章筑公■撸看完上述幾篇文章基本就可以扛搶上戰(zhàn)場(chǎng)了。
下面只做下簡(jiǎn)單的筆記:
1. 添加scheme
scheme的添加是配置出來(lái)的匣屡,xcode中有兩個(gè)地方可以進(jìn)行配置,見(jiàn)下面兩張圖:
方式一.png
方式二.png
2. 添加白名單
應(yīng)用A跳轉(zhuǎn)到應(yīng)用B需要將B的open url的scheme添加到白名單中(ios9+拇涤,參看iOS-使用URL Schemes捣作,進(jìn)行應(yīng)用之間跳轉(zhuǎn)),白名單也是配置鹅士,如下圖
添加白名單.png
3. 發(fā)起跳轉(zhuǎn)
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.接收跳轉(zhuǎn)
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實(shí)現(xiàn)跳轉(zhuǎn)的這條路已經(jīng)走通了。如何應(yīng)用就看自己項(xiàng)目需要了。細(xì)節(jié)什么的也拜,通過(guò)實(shí)踐以及查看文檔就可以了以舒。