खोज…
टिप्पणियों
UIWebView प्रतिनिधि कार्य: -
ऑब्जेक्टिव-सी डिक्लेरेशन
- (BOOL)webView:(UIWebView *)webView
shouldStartLoadWithRequest:(NSURLRequest *)request
navigationType:(UIWebViewNavigationType)navigationType;
- (void)webView:(UIWebView *)webView
didFailLoadWithError:(NSError *)error;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webViewDidStartLoad:(UIWebView *)webView;
UIWebView उदाहरण बनाएँ
तीव्र
let webview = UIWebView(frame: CGRect(x: 0, y: 0, width: 320, height: 480))
उद्देश्य सी
UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
//Alternative way of defining frame for UIWebView
UIWebView *webview = [[UIWebView alloc] init];
CGRect webviewFrame = webview.frame;
webviewFrame.size.width = 320;
webviewFrame.size.height = 480;
webviewFrame.origin.x = 0;
webviewFrame.origin.y = 0;
webview.frame = webviewFrame;
URL अनुरोध करना
url
से वेबव्यू में सामग्री लोड करें
तीव्र
webview.loadRequest(NSURLRequest(URL: NSURL(string: "http://www.google.com")!))
उद्देश्य सी
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]]];
वेब सामग्री लोड करना बंद करें
विधि stopLoading()
वेबव्यू की वर्तमान लोडिंग प्रक्रिया को रोकती है।
तीव्र
webview.stopLoading()
उद्देश्य सी
[webview stopLoading];
वर्तमान वेब सामग्री को पुनः लोड करें
तीव्र
webview.reload()
उद्देश्य सी
[webview reload];
सामग्री का आकार निर्धारित करना
कई मामलों में, उदाहरण के लिए, टेबल व्यू कोशिकाओं में वेब दृश्यों का उपयोग करते समय, प्रदान किए गए HTML पृष्ठ की सामग्री का आकार निर्धारित करना महत्वपूर्ण है। पृष्ठ लोड करने के बाद, यह UIWebViewDelegate
प्रतिनिधि विधि में गणना की जा सकती है:
- (void) webViewDidFinishLoad:(UIWebView *) aWebView {
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;
NSLog(@"size: %f, %f", fittingSize.width, fittingSize.height);
}
कोड शीघ्र ही फिटिंग आकार को मापने के लिए वेब दृश्य की ऊंचाई को 1 पर सेट करने से पहले एक अतिरिक्त चाल को नियुक्त करता है। अन्यथा यह केवल वर्तमान फ्रेम आकार की रिपोर्ट करेगा। मापने के बाद हमने तुरंत ऊंचाई को वास्तविक सामग्री ऊंचाई पर सेट किया।
HTML स्ट्रिंग लोड करें
वेब दृश्य स्थानीय रूप से उत्पन्न HTML स्ट्रिंग्स को लोड करने के लिए उपयोगी होते हैं।
NSString *html = @"<!DOCTYPE html><html><body>Hello World</body></html>";
[webView loadHTMLString:html baseURL:nil];
तीव्र
let htmlString = "<h1>My First Heading</h1><p>My first paragraph.</p>"
webView.loadHTMLString(htmlString, baseURL: nil)
एक स्थानीय आधार URL निर्दिष्ट किया जा सकता है। यह ऐप बंडल से इमेज, स्टाइलशीट या स्क्रिप्ट को संदर्भित करने के लिए उपयोगी है:
NSString *html = @"<!DOCTYPE html><html><head><link href='style.css' rel='stylesheet' type='text/css'></head><body>Hello World</body></html>";
[self loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
इस स्थिति में, app के संसाधन निर्देशिका से style.css
को स्थानीय रूप से लोड किया जाता है। बेशक यह एक दूरस्थ URL निर्दिष्ट करना भी संभव है।
जावास्क्रिप्ट लोड करें
हम एक पर कस्टम JavaScript चला सकें UIWebView
पद्धति का उपयोग करके stringByEvaluatingJavaScriptFromString()
.इस विधि जावास्क्रिप्ट स्क्रिप्ट स्क्रिप्ट पैरामीटर में पारित कर दिया, या नहीं के बराबर है, तो स्क्रिप्ट असफल होता है के परिणाम देता है।
तीव्र
स्ट्रिंग से स्क्रिप्ट लोड करें
webview.stringByEvaluatingJavaScriptFromString("alert('This is JavaScript!');")
स्थानीय फ़ाइल से स्क्रिप्ट लोड करें
//Suppose you have javascript file named "JavaScript.js" in project.
let filePath = NSBundle.mainBundle().pathForResource("JavaScript", ofType: "js")
do {
let jsContent = try String.init(contentsOfFile: filePath!, encoding: NSUTF8StringEncoding)
webview.stringByEvaluatingJavaScriptFromString(jsContent)
}
catch let error as NSError{
print(error.debugDescription)
}
उद्देश्य सी
स्ट्रिंग से स्क्रिप्ट लोड करें
[webview stringByEvaluatingJavaScriptFromString:@"alert('This is JavaScript!');"];
स्थानीय फ़ाइल से स्क्रिप्ट लोड करें
//Suppose you have javascript file named "JavaScript.js" in project.
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"JavaScript" ofType:@"js"];
NSString *jsContent = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
[webview stringByEvaluatingJavaScriptFromString:jsContent];
नोट : stringByEvaluatingJavaScriptFromString:
जावास्क्रिप्ट मूल्यांकन के पूरा होने के लिए विधि प्रतीक्षा करता है। यदि आप ऐसी वेब सामग्री लोड करते हैं जिसका जावास्क्रिप्ट कोड आपके द्वारा वेट नहीं किया गया है, तो इस विधि को लागू करने से आपका ऐप हैंग हो सकता है। सबसे अच्छा अभ्यास WKWebView
वर्ग को अपनाना है और इसके evaluateJavaScript:completionHandler:
उपयोग करें WKWebView
evaluateJavaScript:completionHandler:
विधि के बजाय। लेकिन WKWebView
iOS 8.0 और बाद के संस्करण से उपलब्ध है।
डॉक्यूमेंट फाइल जैसे .pdf, .txt, .doc आदि को लोड करें
वेब पेजों के बजाय, हम डॉक्यूमेंट फाइल्स को iOS WebView जैसे .pdf, .txt, .doc आदि में भी लोड कर सकते हैं .. loadData
विधि का उपयोग NSData
को वेबव्यू में लोड करने के लिए किया जाता है।
तीव्र
//Assuming there is a text file in the project named "home.txt".
let localFilePath = NSBundle.mainBundle().pathForResource("home", ofType:"txt");
let data = NSFileManager.defaultManager().contentsAtPath(localFilePath!);
webview.loadData(data!, MIMEType: "application/txt", textEncodingName:"UTF-8" , baseURL: NSURL())
उद्देश्य सी
//Assuming there is a text file in the project named "home.txt".
NSString *localFilePath = [[NSBundle mainBundle] pathForResource:@"home" ofType:@"txt"];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:localFilePath];
[webview loadData:data MIMEType:@"application/txt" textEncodingName:@"UTF-8" baseURL:[NSURL new]];
लिंक बनाएं जो UIWebview के अंदर क्लिक करने योग्य हों
में vhh
@interface vc : UIViewController<UIWebViewDelegate>
vm में
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked){
//open it on browser if you want to open it in same web view remove return NO;
NSURL *url = request.URL;
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
return NO;
}
return YES;
}
WebView में स्थानीय HTML फ़ाइल लोड करें
सबसे पहले, अपने प्रोजेक्ट में HTML फ़ाइल जोड़ें (यदि आपको फ़ाइल जोड़ने के लिए विकल्प चुनने के लिए कहा जाता है, तो यदि आवश्यक हो तो कॉपी आइटम का चयन करें )
कोड की निम्न पंक्ति HTML फ़ाइल की सामग्री को webView में लोड करती है
webView.loadRequest(NSURLRequest(URL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("YOUR HTML FILE", ofType: "html")!})
- यदि आपकी HTML फ़ाइल को index.html कहा जाता है, तो अपने HTML FILE को अनुक्रमणिका से बदलें
- आप इस कोड का उपयोग या तो viewDidLoad () या viewDidAppear () या किसी अन्य फ़ंक्शन में कर सकते हैं