本日はWeb(WKWebView)からアプリへのアクセス処理を行う予定でした。
Webからアプリへの処理依頼は以下の手順で行います。
1.Web側で、URLに特定のリクエストパラメタを乗せてサーバアクセスする。
2.アプリ側で、画面遷移のタイミングでURLをチェックする。
3.2で、特定のリクエストパラメタを見つけたら、その内容を元にアプリ側処理を実行する。
今回は特定のリクエストパラメタが指定されているか、URLを解析する処理を作りました。
以下がコードとなります。Swift4.0.3です。最新ですよ。Webで調べても古くて動かないコードばかりで苦労しました・・・
オプショナル型とかオプショナルバインディングとか強制アンラップとか復習してコーディングしました。
func getUrlParam(url: String, param: String) -> String? {
if let urlComps: NSURLComponents = NSURLComponents(string: url) {
if let urlParamsCount: Int = urlComps.queryItems?.count {
for i in 0..<urlParamsCount {
if let item: URLQueryItem = urlComps.queryItems?[i] {
if param == item.name {
return item.value
}
}
}
}
}
return nil
}
オプショナル型は一度分かってしまえば便利ですね。
毎回nilチェックしていた日々が過去の思い出となりました。