حدث تحميل UIWebView
سؤال
هل من الممكن بدء حدث عند الانتهاء من تحميل UIWebView (iPhone) تحميل عنوان URL.
كيف يمكنني معرفة، عنوان URL الحالي ل UIWebView؟
المحلول
نعم، هذا ممكن. استخدم ال UIWebViewDelegate
البروتوكول وتنفيذ الطريقة التالية في مندوبك:
- (void)webViewDidFinishLoad:(UIWebView *)webView
إذا كنت تريد عنوان URL، فيمكنك الحصول على آخر طلب باستخدام العقار request
:
webView.request.URL
نصائح أخرى
أيا من الحلول التي تم العثور عليها عملت لي.
ثم وجدت هذا المثال الذي يعمل على الأقل أفضل بكثير من أي حل آخر وجدته على Google / Stackoverflow.
طريقة بسيطة جدا:
الخطوة 1: تعيين مندوب UIWebViewDelegate
في ملف الرأس.
الخطوة 2: إضافة التالية webViewDidFinishLoad
طريقة للحصول على عنوان URL الحالي webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
إجابة Pascal الخاصة بجزء "الحصول على عنوان URL" على ما يرام.
ومع ذلك!
من وثائق UiwebViewDelegate، من Apple: "WebViewDidDFinishLoad: إرسالها بعد انتهاء عرض ويب تحميل إطار".
الإطار! = الصفحة.
يتم استدعاء WebViewDidfinishLoad عند "تحميل الصفحة". كما يمكن أن يسمى عدة مرات قبل ذلك. يمكن ل أحمال الصفحات من Amazon.com إنشاء مكالمات دزينة إلى WebViewDidfinishLoad.
إذا قمت بالتحكم في مصدر الصفحة، فيمكنك إجراء اختبار تحميل لذلك، وسيعمل ذلك، لهذه الحالة. إذا كنت تهتم فقط بالاستدعاء ب "بعد إجراء التحميل"، فإن WebViewDidDFinishLoad كافية.
بالنسبة للصفحات التعسفية، مع جافا سكريبت تعسفي، قم بتحميل لافتات الإعلانات في الأبدية، أو لافتات التلقائي، أو تنفيذ لعبة فيديو، فكرة وجود صفحة "القيام به" خاطئة.