2011-03-23 11 views
15

मैं इस पल है कि जब एक बटन पहली स्क्रीन पर धकेल दिया जाता है कुछ काम करता है और एक URL बन जाता है पर आपका कोई एप्लिकेशन है, और फिरमैं अपने आईओएस ऐप में UIWebView कैसे जोड़ूं?

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:currentURL]]; 

जो मेरे यूआरएल के साथ सफारी की शुरूआत करता है। मैं इसके बजाय यहां से एक वेबव्यू लॉन्च करना चाहता हूं ताकि उपयोगकर्ता इसके साथ कुछ कस्टम चीजें कर सके। मुझे अभी भी आईओएस में एमवीसी समझने का समय लगता है और मदद की ज़रूरत है। मेरा प्रोजेक्ट न्यूनतम है और इसमें AppDelegate.h/m और ViewController.h/m, व्यू कंट्रोलर का एमएम शामिल है, जहां यह सफारी लॉन्च करता है।

क्या कोई मुझे यह समझने में मदद कर सकता है कि मैं क्या करने की कोशिश कर रहा हूं?

धन्यवाद ...

उत्तर

27

सबसे आसान तरीका है बस जब बटन दबाया जाता है एक UIWebView जोड़ना है। इस विधि को अपने ViewController.m में जोड़ें और बटन दबाए जाने पर यह निष्पादित किया जाए।

प्रोग्राम:

//This method should get called when you want to add and load the web view 
- (void)loadUIWebView 
{ 
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.bounds]; //Change self.view.bounds to a smaller CGRect if you don't want it to take up the whole screen 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]]; 
    [self.view addSubview:webView]; 
    [webView release]; 
} 

इंटरफ़ेस बिल्डर का उपयोग करना:

1) अपने इंटरफेस के लिए एक UIWebView वस्तु जोड़ें।

2) "छिपी हुई" संपत्ति को चेक करने के लिए सेट करें (इंटरफ़ेस बिल्डर में "विशेषता निरीक्षक" विंडो में)। जब तक आप इसे दिखाना नहीं चाहते हैं तब तक आप इसे छुपाएंगे।

3), अपने ViewController.h लिए निम्न कोड जोड़ें अन्य @property लाइनों के नीचे:

@property (nonatomic, retain) IBOutlet UIWebView *webView; 

4) अपने ViewController.m में @synthesize नीचे निम्नलिखित पंक्ति जोड़

@synthesize webView; 

और dealloc विधि में [webView release]; जोड़ें।

5) आईबी में वापस जाएं और फ़ाइल के मालिक पर क्लिक करें, और वेब व्यू आउटलेट को वेब व्यू से कनेक्ट करें।

6) कार्यक्रम संबंधी (उदाहरण के लिए विधि मैं ऊपर से पता चला है के बजाय निम्न विधि जोड़ें):

//This method should get called when you want to add and load the web view 
- (void)loadUIWebView 
{ 
    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]]; 
    self.webView.hidden = NO; 
} 

आप बटन प्रेस करने के लिए प्रतिक्रिया करने के लिए एक IBAction विधि सेट कर सकते हैं, लेकिन यह आप की तरह लगता है पहले से ही बटन दबाकर काम कर रहा है, इसलिए मैं अब उससे परेशान नहीं होगा।

वेब दृश्य के ऊपर एक बटन जोड़ने के रूप में, आप या तो वेब दृश्य को उपclass कर सकते हैं और वहां बटन जोड़ सकते हैं, या बस एक अलग बटन है जिसे आप अपने निब या प्रोग्रामेटिक रूप से परिभाषित करते हैं और उसने वेब व्यू को छिपाएं " इसका "।

+0

मैं अपने आईबी सवाल का जवाब देने के लिए कैसे पता नहीं है ... मैं एक है। मुझे नहीं पता कि मैं इसका उपयोग कर रहा हूं या क्या। और मेरे पास वर्तमान में मेरा फ़ंक्शन है जो ViewController.m में मेरे बटन पर वायर्ड है और मैं इसे स्वयं नहीं दे सकता। यह कहता है कि यह मेरे प्रकार की वस्तु पर नहीं मिला है, मैं भी स्वयं addSubView कॉल नहीं कर सकता इसी तरह के कारण ... – cdietschrun

+0

ठीक है, क्षमा करें, मैंने कोड अपडेट किया है। – Ned

+0

धन्यवाद। यह निश्चित रूप से काम करता है। 2 प्रश्न- यदि मैं लिंक लॉन्च करने से पहले वेबव्यू के साथ कुछ सेटिंग करना चाहता हूं, तो मुझे लगता है कि यह संभव है? उदाहरण के लिए यदि मैं ट्विटर की शैली की तरह इसे बनाने का कोई तरीका चाहता हूं, जहां मैं एक लिंक पर क्लिक करता हूं, और शीर्ष पर वापस जाने के लिए एक बटन है, लेकिन बाकी सिर्फ एक वेबव्यू है? और दूसरी बात, एक दोस्त का कहना है कि वह सिफारिश करता है कि मैं इसके लिए आईबी और संपत्तियों पर स्विच करूं ... कोई विचार क्या इसका मतलब है या मैं इसे कैसे कर सकता हूं? सहायता – cdietschrun

1

अपने ऐप पर स्विफ्ट का उपयोग करके UIWebView जोड़ने के लिए बस वेबव्यू को अपने स्टोरी बोर्ड पर खींचें और फिर सहायक संपादक का उपयोग करके WebView को ViewController.swift पर कनेक्ट करें और फिर WebView पर URL लोड करना बहुत आसान है। बस अपने स्टोरीबोर्ड में एक वेब व्यू बनाएं और फिर आप यूआरएल लोड करने के लिए निम्न कोड का उपयोग कर सकते हैं।

let url = NSURL (string: "https://www.simplifiedios.net"); 
    let request = NSURLRequest(URL: url!); 
    webView.loadRequest(request); 

के रूप में कोड है कि केवल 3 लाइनों :) के रूप में सरल

रेफरी: UIWebView Example

0

चूंकि यह गूगल पर शीर्ष परिणाम है, तो आप उपयोग कर सकते हैं WKWebView बजाय UIWebView, आप ऐसा करना चाहिए।

import WebKit 

let webViewConfiguration = WKWebViewConfiguration() 
let webView = WKWebView(frame: CGRect(), configuration: configuration) 
0

के लिए स्विफ्ट कदम और काम कोड द्वारा इस लिंक बहुत आसान कदम के माध्यम से जाना: How to load URL in UIWebView in Swift?

संबंधित मुद्दे