不同 app間的相互呼叫與參數傳遞, 可藉由 URL Schemes 設定來達成. URL Schemes 可以算是介面定義.
►提供介面供其它 app 呼叫與傳遞參數
►提供介面供其它 app 呼叫與傳遞參數
►啟用 URL Schemes 的呼叫設定
想要透過 UIApplication.shared.open 還呼叫其它app, 則需開啟權限指定那些 scheme 是許可(某些系統內定是不用如 http). 一樣需在 info.Plist 設定參數
►程式呼叫方式
let url:String = "rtsp://127.0.0.1/ch01?a=123&b=456"; if let url = URL(string:url) { if UIApplication.shared.canOpenURL(url) { if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:], completionHandler: { (success) in print("Open Url: \(success)") }) } else { UIApplication.shared.openURL(url) } } }
►接收端 app 的觸發
當有外部 app 透過 URL Schemes 進行呼叫, 則 AppDelegate 會被觸發
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { //經由 URL Scheme 來開啟app時觸發 print(tag+url.absoluteString); /*let appId = SDK.Settings.appId if url.scheme != nil && url.scheme!.hasPrefix("fb\(appId)") && url.host == "authorize" { // facebook return SDKApplicationDelegate.shared.application(app, open: url, options: options) }*/ return false }