0
私は自分のアプリの中にWebビューを持っています。作るしかしhttps://github.com/movielala/YoutubeSourceParserKitSwift + iOS:非同期呼び出しからクロージャを呼び出す方法は?
、:
extension WebBrowserViewController: WKNavigationDelegate {
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if (urlVideoType(webView.URL!) != VideoUrl.Unknown && urlVideoType(webView.URL!) != VideoUrl.Youtube) {
...
} else if urlVideoType(webView.URL!) == VideoUrl.Youtube {
// the success and failure part don't work
presentYoutubeVideoIfAvailable(webView.URL!, success: decisionHandler(.Cancel), failure: decisionHandler(.Allow)) <-------------------
} else {
decisionHandler(.Allow)
}
}
}
マイpresentYoutubeVideoIfAvailable
方法は、このユーチューブのURLパーサポッドを使用しています。彼らは要求をキャンセルする/許可する前にユーチューブの映像であれば、私は現在、それぞれのリクエストを見ていると見ています非同期呼び出しと私はそれが私の方法で成功と失敗のメソッドを呼び出すようにする方法がわからない:
func presentYoutubeVideoIfAvailable(url: NSURL, success:(), failure:()) {
Youtube.h264videosWithYoutubeURL(url) { [unowned self] (videoInfo, _) -> Void in
switch videoInfo?["url"] as? String {
case .Some(let videoUrlString):
VideoStore.addVideo(url.absoluteString, title: videoInfo?["title"] as? String ?? "Unknown")
success
self.presentVideo(NSURL(string: videoUrlString)!)
case .None:
print("herereee") // gets printed, so I know it's here
failure // doesn't do anything. it should be allowing the request but it isn't <-----------------------------------
self.showError(.YoutubeParsingFail)
}
}
}
私はそれをしたいユーチューブポッドがURLを返す場合、それはウェブ閲覧要求をキャンセルしなければならないように、もしそれが私はそれを要求し続けることを望みます。どうすればいい?
は '成功()'と '失敗()'あなたが実際にクロージャを呼び出していないことが必要です。 – sbarow