2015-07-17 16 views
5

में लिंक खोलता है मेरे पास एक आईओएस ऐप है जिसमें केवल एक दृश्य है और यह UIWebView है (यह ऐप की मुख्य सामग्री खुलता है)। मुझे लगता है कि जब मैं कहीं क्लिक करता हूं (उदाहरण के लिए टेबल पंक्ति पर) ऐप सफारी ब्राउज़र में विशिष्ट लिंक खोलने के लिए UIWebView के अंदर नहीं है।आईओएस UIWebView ऐप सफारी

क्या कोई आईओएस कोड लिखने के बिना ऐसा करने योग्य है और इसके बजाय जावास्क्रिप्ट सफारी में ही लिंक खोलता है?

मैं thatcode है, लेकिन यह सब पर मदद नहीं करता है:

एचटीएमएल कोड

<tr class='link-to-pdf' data-href='www.example.com'> 

जे एस कोड:

$(".link-to-pdf").click(function() { 

      var a = document.createElement('a'); 
      a.setAttribute("href", this.getAttribute("data-href")); 
      a.setAttribute("target", "_blank"); 

      var dispatch = document.createEvent("HTMLEvents"); 
      dispatch.initEvent("click", true, true); 
      a.dispatchEvent(dispatch); 

     }); 

उत्तर

1

कुछ मामलों में, आप कर सकते हैं अपने जावास्क्रिप्ट में सभी लिंक बताएं जिनके पास target="_blank" है, और उन्हें '_system' p के साथ window.open पर पास करें अराम। यह आईओएस और एंड्रॉइड दोनों पर काम करेगा।

$(document).on('click', 'a[target="_blank"]', function(ev) { 
    var url; 

    ev.preventDefault(); 
    url = $(this).attr('href'); 
    window.open(url, '_system'); 
}); 

या आपके मामले में, बस a.setAttribute("target", "_system");

यह एक प्राचीन प्रॉजेक्ट में मेरे लिए काम किया साथ a.setAttribute("target", "_blank"); की जगह है, लेकिन अनिश्चित im अगर यह अभी भी (आईओएस और एंड्रॉयड पर) काम करता है मामले में

+0

'एसेट found' नहीं त्रुटि – jose920405

0

उपर्युक्त उत्तर आपके लिए काम नहीं करता है, आप इसे आईओएस तरीके से ठीक कर सकते हैं। इसके लिए आपको webView:shouldStartLoadWithRequestUIWebViewDelegate प्रोटोकॉल विधि को लागू करने की आवश्यकता है जहां आपका यूआरएल जांचना है।

- (BOOL) webView: (UIWebView *) theWebView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType 
{ 
    NSURL *url = [request URL]; 
    // check URL in your if condition 
    if (...) { 
     //open URL in Safari 
     [[UIApplication sharedApplication] openURL:url]; 
     return NO; 
    } 
    else 
     return [ super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType ]; 
} 

ऊपर जवाब के साथ एक बाधा नहीं है, तो आप JQuery से IOS अनुप्रयोग को अधिसूचित करने के तंत्र को लागू करने की जरूरत है, संभावित समाधान, यहाँ पर चर्चा की है: https://stackoverflow.com/a/11633460/3317354

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