0

私はプロジェクトを引き継いでいます。このアプリの主な目標は、Webビューを作成し、すべてのページのURLを文字列チェックと照合して、どのバックグラウンド機能を実行する必要があるかを判断することです。

問題は、webViewDidFinishLoadは、webview自体が作成されたときに1回だけ起動するように見えることです。内部リンクがクリックされるたびに、それが再び起動することはありません。

onViewLoadでは、デリゲートが自分自身に設定されており、必ず比較的適切に配置されていますが、これもページの読み込みごとに発生しません。

これは言った。

shouldStartLoadWithRequestは実行します。ただし、リクエストを開始し、イベントが発生するまでにURLが完全に読み込まれていないため、使用すると、ターゲットURLではなくリクエストページの現在のURLが取得されます。

NSString *curURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];

他の関数は何も返さないか、上記の関数とまったく同じものを返します

//NSString *curURL = self.webView.request.URL.absoluteString;
//NSString *curURL = webView.request.mainDocumentURL.absoluteString;

ですから、ここで途方に暮れて、Androidでこれを行うのは比較的簡単でしたが、webViewのメソッドの数が限られているため、私は落ち込んでいます。

4

1 に答える 1

0

問題は単純に、jQueryUI Mobile 1.0.4 を使用する Web サイトにありました。これは、ミックス内の次の URL に # を追加して URL をロードするだけでなく、

http://url.com/somepage.php?item=1#/somepage.php?item=2

また、これを行うと、何らかの方法で webView をだまして、URL を直接変更したにもかかわらず、ページが変更されたと考えさせます。そのため、後続のページがライブラリでロードされた後、webViewDidFinishLoad が起動することはありません。

悲しい。図書館もいい感じでした。

于 2012-10-31T20:44:51.330 に答える