سؤال

هل من الممكن بدء حدث عند الانتهاء من تحميل UIWebView (iPhone) تحميل عنوان URL.

كيف يمكنني معرفة، عنوان URL الحالي ل UIWebView؟

هل كانت مفيدة؟

المحلول

نعم، هذا ممكن. استخدم ال UIWebViewDelegate البروتوكول وتنفيذ الطريقة التالية في مندوبك:

- (void)webViewDidFinishLoad:(UIWebView *)webView

إذا كنت تريد عنوان URL، فيمكنك الحصول على آخر طلب باستخدام العقار request:

webView.request.URL

نصائح أخرى

أيا من الحلول التي تم العثور عليها عملت لي.

ثم وجدت هذا المثال الذي يعمل على الأقل أفضل بكثير من أي حل آخر وجدته على Google / Stackoverflow.

UIWebView-Load-إكمال تعقب

طريقة بسيطة جدا:

الخطوة 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 كافية.

بالنسبة للصفحات التعسفية، مع جافا سكريبت تعسفي، قم بتحميل لافتات الإعلانات في الأبدية، أو لافتات التلقائي، أو تنفيذ لعبة فيديو، فكرة وجود صفحة "القيام به" خاطئة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top