Saya sudah mencoba mendapatkan URL saat saya UIWebViewdengan: webview.request.URL. Sayangnya NSURLitu kosong. Ada yang salah di sini? Saya bekerja dengan Xcode 3.2.2 beta 5.
Kode di atas harus dieksekusi di UIWebViewdelegasi didStartLoad.
Lakukan kode itu currentURL = currentWebView.request.URL.absoluteString; setelah tampilan web Anda dimuat, gunakan - (void) webViewDidFinishLoad: (UIWebView *) webView. Mungkin ini bisa membantu.
Xcoder
OP, mengingat pertanyaan ini memiliki 78k tampilan, pertanyaan ini cukup direferensikan. Maukah Anda memperbarui jawaban yang diterima menjadi jawaban yang lebih banyak dipilih untuk mencegah kebingungan di masa mendatang? Terima kasih!
Albert Renshaw
Jawaban:
45
Versi Matt jauh lebih bersih. Saya menyarankan semua orang untuk menggunakan yang satu itu daripada ini
Terima kasih. Kode saya di atas berfungsi ketika menjalankan di didFinishLoad .... Di suatu tempat saya telah membaca bahwa versi js tidak berfungsi di setiap halaman. Tapi saya akan mencoba.
danielreiser
11
Matt versinya jauh lebih bersih. Jadi ya, saya merekomendasikan semua orang untuk menggunakan yang itu daripada ini.
Rengers
1
Ini adalah satu-satunya cara kerjanya, misalnya di m.youtube.com. Semua jawaban lain mengembalikan URL yang salah.
cprcrack
2
Saya sebenarnya mengevaluasi "document.URL" dan bukan "window.location" (yang selalu kosong untuk saya). Ini berguna untuk penyesuaian internal pada URL halaman di situs JS yang berat yang mungkin tidak menggunakan pemuatan halaman biasa.
SmartyP
1
Kepada dua orang di atas - Aubada Taljo dan Taranfx - Rengers telah mencatat dengan cukup berani (secara harfiah, teksnya tebal) dan dengan rendah hati bahwa orang harus menggunakan versi Matt dengan lebih dari 230 suka di bawah ini. Jelas pada saat menjawab ini, ini berhasil dan diterima dan 30+ orang merasa itu berhasil juga. Ini sekarang berusia 5,5 tahun. Barang bagus, Rengers. Terima kasih telah mengarahkan orang-orang ke jawaban Matt di bawah ini.
Aplikasi Dev Guy
317
window.location melalui JS tidak berfungsi dengan andal untuk saya, tetapi ini berhasil:
Anda akan mendapatkan url yang salah jika situs Anda memuat beberapa iklan di permintaan lain. Varian yang lebih jelas ditulis olehMark Sands
OdNairy
tidak berfungsi untuk hasil pencarian google. Saat mengakses hasil pencarian dari google itu menunjukkan saya URL google bukan url halaman hasil pencarian. Setiap bantuan .........
Nirav Gadhiya
@iOSDeveloper Google mungkin menggunakan status push "HTML5" untuk memanipulasi URL yang tidak melibatkan eksekusi permintaan lain (jadi currentWebView.request tidak diperbarui).
danw
3
Metode ini sepertinya tidak berfungsi jika situs web telah melakukan
riwayat. PushState
1
Di Swift 4: webView.request? .MainDocumentURL? .AbsoluteString
DmitryKanunnikoff
55
berikut kode yang saya gunakan untuk mengambil url setiap kali Anda menavigasi ke tautan berbeda dalam tampilan web:
Saya menggunakan shouldStartLoadWithRequestacara (UIWebViewDelegate) untuk menangkap pembaruan URL. request.mainDocumentURL.absoluteStringakan memberi Anda URL halaman web utama (yang biasanya sesuai dengan keinginan Anda), sementara itu request.URL.absoluteStringakan menyertakan CSS dan JavaScript.
Jawaban:
Versi Matt jauh lebih bersih. Saya menyarankan semua orang untuk menggunakan yang satu itu daripada ini
Anda bisa mencoba ini:
sumber
window.location melalui JS tidak berfungsi dengan andal untuk saya, tetapi ini berhasil:
Kredit: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html
sumber
Mark Sands
berikut kode yang saya gunakan untuk mengambil url setiap kali Anda menavigasi ke tautan berbeda dalam tampilan web:
sumber
webView.request.URL.absoluteString
kembalinil
Saya juga menemukan bahwa jawaban yang disetujui di atas tidak dapat diandalkan. Tetapi dengan sedikit modifikasi, sepertinya berfungsi setiap saat:
Perhatikan penambahan ".href" ke Javascript karena ini tersembunyi di akhir baris kode.
sumber
Ini tidak benar, dan akan mengembalikan nol:
Namun, kode di bawah ini bisa mendapatkan URL, tetapi url mungkin bukan URL saat ini:
Yang benar adalah:
sumber
sumber
Mencoba ini untuk hasil pencarian google di iPhone:
Keduanya mengembalikan string yang sama!
sumber
di sini kode yang saya gunakan:
sumber
webView.request.URL
?Karena UIWebView tidak digunakan lagi, untuk WKWebview mendapatkan url saat ini sangat sederhana.
sumber
Saya menggunakan
shouldStartLoadWithRequest
acara (UIWebViewDelegate) untuk menangkap pembaruan URL.request.mainDocumentURL.absoluteString
akan memberi Anda URL halaman web utama (yang biasanya sesuai dengan keinginan Anda), sementara iturequest.URL.absoluteString
akan menyertakan CSS dan JavaScript.sumber
Ini selalu berhasil. .
sumber
menerapkan metode delegasi,
URL adalah apa yang Anda butuhkan.
sumber
DI Swift coba ini,
sumber
Untuk mendapatkan URL WKWebView dan UIWebview saat ini
Ini kodenya.
sumber