2016-04-12 16 views
5

कॉर्डोवा ऐप में जो मैं काम कर रहा हूं वहां एक आईफ्रेम है। समस्या यह है कि ऐप का परीक्षण करते समय (सिम्युलेटर और डिवाइस दोनों पर) iframe खाली है। एंड्रॉइड पर iframe पूरी तरह से काम करता है।कॉर्डोवा आईओएस रिक्त आईफ्रेम

आईफ्रेम को कोणीय निर्देश में गतिशील रूप से लोड किया जाता है।

var iframe = angular.element('<iframe class="widget" width="' + widgetWidth + '" height="' + widgetHeight + '"></iframe>'); 
iframe.attr('src', url); 
element.append(iframe); 

मैं भी निम्नलिखित लाइनों में कुछ का उपयोग कर की कोशिश की है:

var iframe = document.createElement('iframe'); 
iframe.src = url; 

निर्देश लिंक समारोह निम्नलिखित कोड को लोड और निर्देश के तत्व करने के लिए iframe संलग्न करने के लिए प्रयोग किया जाता है के भीतर

इसका परिणाम निम्न में कुछ है (सफारी वेब इंस्पेक्टर का उपयोग करके):

<iframe class="widget" width="384" height="505" src="http://hostname/correct/uri"></iframe> 

मेरी index.html फ़ाइल में मैं निम्नलिखित सेट है:

<access origin="*" subdomains="true" /> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 

भी कोई त्रुटि या सफारी वेब में चेतावनी है:

<meta http-equiv="Content-Security-Policy" content="script-src * 'unsafe-eval'; connect-src * 'unsafe-eval'; object-src 'self'; style-src * 'unsafe-inline';"> 

मैं अपने कॉर्डोबा config.xml में निम्नलिखित लाइनों है इंस्पेक्टर।

तो मेरा सवाल यह है कि, क्या मुझे लगता है कि कॉर्डोवा आईओएस ऐप्स में काम करने के लिए आईफ्रेम प्राप्त करने के लिए कुछ चाल है। या मेरे वर्तमान विन्यास/कोड के साथ क्या गलत है?

मैं angularjs 1.5.3 का उपयोग कर रहा हूं और इसमें मदद के मामले में jquery 2.2.1 (angularjs से पहले लोड किया गया है) है।

+0

कुछ और परीक्षण के बाद, मैंने यह भी देखा है कि आईफ्रेम का ऑनलोड ईवेंट कभी नहीं निकाल दिया जाता है। बस अगर किसी के पास उस पर कुछ अंतर्दृष्टि है। – Jan

उत्तर

10

समस्या अनुमति देते हैं-नेविगेशन टैग किया गया था। तो इसे हल करने के लिए मुझे केवल परियोजना की config.xml फ़ाइल में <allow-navigation href="*" /> टैग डालना पड़ा।

सिम्युलेटर चल रहा था, जबकि मैं एक्सकोड में आउटपुट बॉक्स के माध्यम से समाधान में आया था। प्रश्न में आईफ्रेम का यूआरएल और "आंतरिक नेविगेशन अस्वीकार" के बारे में कुछ संदेश था।

+0

कोई भाग्य नहीं, समस्या एक जैसी है। – JimiOr2

+1

मुझे इस बदलाव को काम करने के लिए 'कॉर्डोवा प्लेटफॉर्म आरएम आईओएस', 'कॉर्डोवा प्लेटफार्म आईओएस' होना था। एक 'कॉर्डोवा क्लीन', 'कॉर्डोवा बिल्ड' भी काम कर सकता है। – camomileCase

+0

बिल्कुल सही, बहुत धन्यवाद – Max

1

क्या आपने सामग्री-सुरक्षा-नीति मेटा टैग में बाल-स्रोत और/या फ्रेम-पूर्वजों को स्थापित करने का प्रयास किया है? इन्हें आपके द्वारा उपयोग किए जा रहे आईफ्रेम स्रोत यूआरएल की तरह * या कुछ और अधिक प्रतिबंधित करने की आवश्यकता हो सकती है।

वहाँ अपनी सामग्री सुरक्षा नीति पर आधारित पर content-security-policy.com

उदाहरण इस बारे में जानकारी है:

<meta http-equiv="Content-Security-Policy" content="script-src * 'unsafe-eval'; child-src *; connect-src * 'unsafe-eval'; object-src 'self'; style-src * 'unsafe-inline';"> 
+0

लिंक के लिए धन्यवाद। लिंक में दी गई जानकारी से, ऐसा लगता है कि सफारी द्वारा बाल-स्रोत और फ्रेम-पूर्वजों का समर्थन नहीं किया जाता है। मैंने वैसे भी कोशिश की, लेकिन कोई भाग्य नहीं। – Jan

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