Swift 2 を使用して構築している iOS 9 アプリで SFSafariViewController を使用しています。
何らかの理由で失敗する URL を開こうとしています。これを除いて、私が試した他のすべての URL は機能します。
http://www.ctvnews.ca/sci-tech/33-engineers-to-be-recognized-at-sci-tech-oscars-1.2730223
URL は、シミュレーターの通常のモバイル Safari、iPhone、iPad、および任意のデスクトップ ブラウザーで問題ありません。このアプリで Swift 経由でアクセスしようとすると、失敗します。
コードは次のとおりです。
func openInSafari(URLtoOpen: String) {
print("Trying to openURL: " + URLtoOpen)
let safariVC = SFSafariViewController(URL:NSURL(string: URLtoOpen)!, entersReaderIfAvailable: false)
safariVC.delegate = self
self.presentViewController(safariVC, animated: true, completion: nil)
}
func safariViewController(controller: SFSafariViewController, didCompleteInitialLoad didLoadSuccessfully: Bool) {
// SFSafariViewController will present an error message in the browser,
// but in this case we will dismiss the view controller and present our
// own error alert.
if didLoadSuccessfully == false {
controller.dismissViewControllerAnimated(true, completion: { [unowned self] () -> Void in
let alert = UIAlertController(title: "Could Not Load", message: "The URL could not be loaded.", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "Okay", style: .Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
})
}
}
このコードは問題なく動作し、前述のとおり、他の URL も問題なく読み込まれます。私が本当に必要としているのは、失敗の原因となっている safariViewController が遭遇したものをより詳細にデバッグする方法です。
このdidLoadSuccessfully == false
行は、何が問題なのかを把握するためのデバッグ オプションをこれ以上提供しているようには見えません。
つまり、これをデバッグするにはどうすればよいですか? 読み込みエラーが発生した場合に何をチェックするかを説明するAppleのドキュメントには何も見つからないようです。
助けてください!ありがとう。