lang
1func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 2 //ユーザの操作によるリクエストでなければ表示許可。 3 if navigationType == UIWebViewNavigationType.other { 4 return true; 5 } 6 7 var theUrl: String 8 if let unwrappedUrl = request.url?.absoluteString { 9 theUrl = unwrappedUrl 10 } else { 11 stopLoading() 12 return false; 13 } 14 15 var canStayInApp = false; 16 for url in whiteList { 17 if theUrl.range(of: url, options: NSString.CompareOptions.regularExpression) != nil { 18 canStayInApp = true; 19 break; 20 } 21 } 22 23 if !canStayInApp { 24 openInSafari(urlString: theUrl) 25 stopLoading() 26 return false; 27 } 28 29 return true 30 } 31
上記コードでwebviewで読み込み中に読み込みをそのまま続けるかどうかの処理を記述しているのですが、if navigationType == UIWebViewNavigationType.otherの部分がどういった判定をしようとしているのかがわかりません。
UIWebViewNavigationTypeでユーザーがどんな操作をしたか、otherはリンクを踏む(.linkClicked)でも、フォームを送信する(.formSubmitted)でも、リロード(.reload)でもないときという意味なのは調べてわかりました。
ただ、コメントの「ユーザの操作によるリクエストでなければ表示許可。」というのがどういう場合を想定しているのかが理解できません。
アプリ全体としてやろうとしていることはSearchBarに入力したワードを使ってYahooの検索結果ページに飛ぶという処理です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/10 07:41
2017/07/15 07:26