ここでの目標は、webView
のURLが変更されるたびに検出することです。 WKWebViewクラスのdidCommit
とdidStartProvisionalNavigation
の機能は、WebView内の特定の要素を操作するときに必ず発生するとは限りません.WebViewのURL値が変更されたときに、オブザーバを追加する必要があります。Obj-CオブザーバをSwift構文に変換する際に問題が発生しました
これまでのところ、私は名前checkURL
と私自身の通知の拡張作成しました:
スウィフト進捗
extension Notification.Name {
static let checkURL = Notification.Name("checkURL")
}
NotificationCenter.default.post(name: .checkURL, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(getter: webView.url), name: .checkURL, object: webView.url)
Objective-Cのソリューションを(KVO)
// Add an observer
[webView_ addObserver:self forKeyPath:@"URL" options:NSKeyValueObservingOptionNew context:NULL];
// Method that gets called when the URL value changes
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
// Code
}
どうだろう私はObjective-Cコードを使ってURLの値が変わるたびに機能しますか?私はまだ通知の周りに頭を抱えて、オブジェクトの値をどのように扱うのかを考えているので、どんな説明も非常に便利です!
ありがとうございます! didCommit
とdidStartProvisionalNavigation
は常に発射していないようですので、PHPだけでなく、JavaScriptベースのサイトで作業する場合は特に(
:
EDIT:だけで物事をクリアするために、私は私の質問を言い替えるます - #
などの記号でURLが変更されていることが常に見られます。しかし、前述のように、組み込みのWKWebView関数はそれらを捕捉していないようです。だから私がここでやろうとしているのは、それが単なる#
なのかどうかにかかわらず、URLに加えられた変更を捕まえるための回避策を見つけることです。 :)
これは、あなたがeffectiを持って三回目です尋ねると同じ質問をしました。やめてください。 – matt