ইউআইবিউবভিউয়ের বর্তমান ইউআরএল পান


110

আমি ইতিমধ্যে আমার বর্তমান URL টি পেয়ে চেষ্টা UIWebViewসঙ্গে webview.request.URL। দুর্ভাগ্যক্রমে NSURLখালি ছিল। এখানে কিছু ভুল? আমি এক্সকোড 3.2.2 বিটা 5 নিয়ে কাজ করছি।

উপরের কোডটি UIWebViewডেলিগেটে কার্যকর করা উচিত didStartLoad


সেই কোডটি বর্তমান করুন URL = কারেন্ট ওয়েলভিউ.রিয়ক.আরএল.এবসলিউট স্ট্রিং; আপনার ওয়েব ভিউ লোড হওয়ার পরে তাই ব্যবহার করুন - (অকার্যকর) ওয়েবভিউডিডফিনিশলুড: (ইউআইউইউবভিউ *) ওয়েবভিউ। হতে পারে এটি সাহায্য করতে পারে।
এক্সকোডার

ওপি, এই প্রশ্নটি বিবেচনা করে 78k দর্শন পেয়েছে এটি বেশ সুন্দরভাবে উল্লেখ করা হয়েছে। ভবিষ্যতের বিভ্রান্তি রোধ করার জন্য আপনি কীভাবে বেশি বেশি ভোট দেওয়া হয়েছে তার গ্রহণযোগ্য উত্তরটি আপডেট করবেন? ধন্যবাদ!
অ্যালবার্ট রেনশওয়া

উত্তর:


45

ম্যাট এর সংস্করণ অনেক পরিষ্কার। আমি ব্যবহার সবাইকে সুপারিশ যে এই পরিবর্তে এক

আপনি এটি চেষ্টা করতে পারেন:

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

ধন্যবাদ। আমার কোড উপরের ফিনিশলোডে কার্যকর করার সময় কাজ করে .... কোথাও আমি পড়েছি যে জেএস সংস্করণ প্রতিটি পৃষ্ঠায় কাজ করে না। কিন্তু আমি চেষ্টা করব.
ড্যানিয়েলাইজার

11
ম্যাট তার সংস্করণ অনেক পরিষ্কার। সুতরাং হ্যাঁ আমি প্রত্যেককে এটির পরিবর্তে এটি ব্যবহার করার পরামর্শ দিচ্ছি।
রেঞ্জ করে

1
M.youtube.com এ উদাহরণস্বরূপ এটি একমাত্র উপায়। অন্য সমস্ত উত্তরগুলি ভুল ইউআরএল দেয়।
cprcrack

2
আমি আসলে "ডকুমেন্ট.ইউআরএল" মূল্যায়ন করি এবং "উইন্ডো.লোকেশন" নয় (যা সর্বদা আমার জন্য ফাঁকা ছিল)। এটি জেএস ভারী সাইটগুলির পৃষ্ঠার ইউআরএলটিতে অভ্যন্তরীণ সামঞ্জস্যগুলির জন্য দরকারী যা traditionalতিহ্যবাহী পৃষ্ঠা লোড ব্যবহার না করে।
স্মার্টটিপ

1
উপরের দুটি ব্যক্তির কাছে - আওবাদা তালজো এবং তারানফেক্স - রেঞ্জাররা বেশ সাহসের সাথে উল্লেখ করেছেন (আক্ষরিক অর্থে, পাঠ্যটি সাহসী) এবং নম্রভাবে যে লোকেদের ম্যাটর সংস্করণটি নীচে 230 টিরও বেশি পছন্দ সহ ব্যবহার করা উচিত। এর উত্তর দেওয়ার সময় স্পষ্টতই, এটি কাজ করেছিল এবং স্বীকৃত হয়েছিল এবং 30+ জন লোক মনে হয়েছে এটিও কাজ করেছে। এটি এখন 5.5 বছর বয়সী। ভাল জিনিস, রেঞ্জার্স। নীচে ম্যাট এর উত্তর লোকদের নির্দেশ করার জন্য ধন্যবাদ।
অ্যাপ দেব গাই

317

জেএসের মাধ্যমে উইন্ডো.লোকেশন আমার পক্ষে নির্ভরযোগ্যভাবে কাজ করে নি, তবে এটি করেছে:

currentURL = currentWebView.request.URL.absoluteString;

ক্রেডিট: http://mohrt.blogspot.com/2008/10/getting-url-from-uiwebview.html


9
আপনি সাইটটি অন্য অনুরোধে কিছু বিজ্ঞাপন লোড করলে আপনি ভুল url পাবেন। আরও সুস্পষ্ট রূপটি লিখেছেনMark Sands
ওডনিয়ারি

গুগলের অনুসন্ধান ফলাফলের জন্য কাজ করে না। গুগল থেকে অনুসন্ধানের ফলাফলগুলিতে অ্যাক্সেস করার সময় এটি আমাকে গুগল ইউআরএল দেখাচ্ছে না ফলাফল ফলাফলের পৃষ্ঠার url দেখাচ্ছে। কোনও সহায়তা .........
নীরভ গাদিয়া

@ আইওএস ডেভেলপার গুগল সম্ভবত ইউআরএল ম্যানিপুলেট করার জন্য "এইচটিএমএল 5" পুশ স্টেট ব্যবহার করে যা অন্য কোনও অনুরোধ কার্যকর করার সাথে জড়িত না (সুতরাং কারেন্ট ওয়েলভিউ.ভিউ আপডেট করা হয়নি)।
টানুন

3
এই পদ্ধতি কাজ বলে মনে হচ্ছে না যদি ওয়েবসাইট history.pushState করেছেন
andrrs

1
সুইফ্ট 4 এ: ওয়েবভিউ.আরকুয়েস্ট? .মাইনডোকামেন্টাল??
অ্যাবসোলিউট স্ট্রিং

55

আপনি ওয়েবভিউয়ের মধ্যে যখন কোনও ভিন্ন লিঙ্কে নেভিগেট করেন প্রতিবার url ধরতে আমি যে কোডটি ব্যবহার করি তা এখানে:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
  self.url = aWebView.request.mainDocumentURL;
}

যখন আমি এটি চেষ্টা করি, পদ্ধতিটি কখনই ডাকা হয় না। আমি কি অনুপস্থিত হতে পারে এমন কিছু আছে?
গ্রেগ

1
@ গ্রেগ নিশ্চিত করুন যে আপনি নিজেকে ইউআইবিউব ভিউয়ের প্রতিনিধি হিসাবে সেট করেছেন
বেন্ডাইট্রি

1
webView.request.URL.absoluteStringফিরে আসার সময় এটি আমার জন্য কাজ করেছিলnil
bendytree

ধন্যবাদ, এটি আমার পক্ষেও কাজ করেছে এবং এটি বর্তমানের ভিউভিউ.রিকোস্ট.রুল্য.আরএলসিউল স্ট্রিংয়ের চেয়ে ভাল;
ওয়েব hobbit

36

আমিও দেখতে পেয়েছি যে উপরের অনুমোদিত উত্তরটি নির্ভরযোগ্য নয়। তবে সামান্য সংশোধন করে, এটি প্রতিবার কাজ করে বলে মনে হচ্ছে:

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

জাভাস্ক্রিপ্টে ".href" সংযোজনটি নোট করুন কারণ কোডের লাইনের শেষে এটি লুকানো রয়েছে।


2
ধন্যবাদ সারাহআর, আপনার পদ্ধতিটি ইউআইবিউব ভিউ কোনও অংশ কেবল একটি অংশ লোড করলেও কাজ করে।
দিমিত্রি মাকারেঙ্কো

18

এটি সঠিক নয়, এবং একটি শূন্যতা ফিরিয়ে দেবে:

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

তবে নীচের কোডটি একটি URL পেতে পারে তবে ইউআরএলটি বর্তমান ইউআরএল নাও হতে পারে:

NSString *url = _webView.request.URL.absoluteString;

সঠিকটি হ'ল:

NSString *currentURL = [_webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];

8
- (void)webViewDidFinishLoad:(UIWebView *)webView{
     NSURL *currentURL = [[webView request] URL];
     NSLog(@"%@",[currentURL description]);

}

4

আইফোনে গুগল অনুসন্ধান ফলাফলের জন্য এটি চেষ্টা করে:

 NSString* currentURL = webView.request.URL.absoluteString;
 NSString* mainDocumentURL = webView.request.mainDocumentURL.absoluteString;

দুজনেই একই স্ট্রিং ফিরিয়ে!


3

আমি যে কোডটি ব্যবহার করি তা এখানে:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[[[webView request] URL] absoluteString]]];

5
আপনি বিদ্যমান এনএসআরএল থেকে স্ট্রিং পেয়ে একটি এনএসআরএল তৈরি করছেন; আপনি কি শুধু কপি করতে পারবেন না webView.request.URL?
পাস্কাল


2

shouldStartLoadWithRequestইউআরএল আপডেটগুলি ধরার জন্য আমি ইভেন্টটি (ইউআইবিউবভিউ ডেলিগেট) ব্যবহার করি । request.mainDocumentURL.absoluteStringআপনি মূল ওয়েব পৃষ্ঠার ইউআরএল পাবেন (যা সাধারণত আপনি যা চান) তবে request.URL.absoluteStringসিএসএস এবং জাভাস্ক্রিপ্ট অন্তর্ভুক্ত থাকবে।



2

প্রতিনিধি পদ্ধতি বাস্তবায়ন,

- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSString  *URL = request.URL.absoluteString;    NSLog(@"%@",URL);
}

ইউআরএল হ'ল আপনার ঠিক যা প্রয়োজন।



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.