2016-03-26 8 views
28

मैंने कॉर्डोवा का उपयोग करके एक आईओएस ऐप बनाया है। ऐप एक वेब पेज लोड करने का प्रयास करता है उदा। Index.html में http://yourdomain.com/home। लेकिन, पृष्ठ कंसोल में त्रुटि के साथ सफेद खाली रहता है "आंतरिक नेविगेशन अस्वीकार - < अनुमति-नेविगेशन> url = 'http://yourdomain.com/home' के लिए सेट नहीं है"।आंतरिक नेविगेशन अस्वीकार कर दिया गया: <अनुमति-नेविगेशन सेट नहीं> आईओएस पर कॉर्डोवा में

मैंने पहले ही <access origin="http://yourdomain.com/home" subdomains="true" /> सेट किया है और <allow-navigation> टैग सेट करके भी कोशिश की है। लेकिन पृष्ठ खाली रहता है। क्या मैं कुछ और याद कर रहा हूँ? कृपया गाइड करें।

index.html में निम्नलिखित मेटा टैग जोड़ने के बाद, "आंतरिक नेविगेशन त्रुटि" चली गई है, लेकिन पृष्ठ अभी भी सफेद खाली है। :(

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

उत्तर

41

मुझे यह समस्या हो रही थी और यह पता चला कि दो config.xml फ़ाइलें हैं। पहला एक्सकोड में है, लेकिन आपको फाइल सिस्टम से दूसरे को संपादित करना होगा।

AppName/config.xml 

AppName/platforms/ios/AppName/config.xml 

मैं उन दोनों से

<allow-navigation href="*" /> 

जोड़ा गया है और यह काम किया। 6.3.0 का उपयोग करना

<access origin="about:*" /> 
<allow-navigation href="about:" /> 

यह cordova-plugin-whitelist में वर्णित के रूप

<access origin="*" /> 
<allow-navigation href="*" /> 

उपयोग करने के लिए अनुशंसित नहीं है:

+8

यह उत्तर सही नहीं है, आपको केवल रूट config.xml को संशोधित करना होगा, फिर जब आप कॉर्डोवा तैयार करते हैं, इसे बनाते हैं या चलाते हैं तो इसे अन्य कॉन्फ़िगरेशन में कॉपी किया जाएगा।xml – jcesarmobile

+1

मैं कॉर्डोवा तैयार नहीं करता हूं, मैं प्रोजेक्ट को एक्सकोड में खोलता हूं क्योंकि मैंने अनुकूलन किए हैं। –

+1

टॉम Kincaids जवाब मेरे लिए पूरी तरह से काम किया! कुछ कारणों से कॉर्डोव ऐपनाम/प्लेटफॉर्म/आईओएस/ऐपनाम/config.xml से बहुत ही निर्माण के बाद लाइन को हटा देता है, भले ही मैंने इसे AppName/config.xml में जोड़ा हो। तो ऐसा लगता है कि मुझे प्रत्येक बिल्ड के बाद मैन्युअल रूप से इस लाइन को जोड़ना होगा –

24

आप अपने config.xml

<allow-navigation href="http://yourdomain.com/home" /> 

को यह पंक्ति जोड़ने के लिए या यह एक अगर तुम yourdomain.com पर सभी यूआरएल करने के लिए नेविगेशन की अनुमति देना चाहते है

<allow-navigation href="http://yourdomain.com/*" /> 
+0

मैंने कोशिश की है, लेकिन काम नहीं किया। क्या मुझे काम करने के लिए कुछ प्लगइन स्थापित करने की ज़रूरत है? –

+4

यदि आप कॉर्डोवा-आईओएस 4.x.x का उपयोग करते हैं तो आपको कुछ और जोड़ने की ज़रूरत नहीं है। '' के साथ प्रयास करें और सामग्री-सुरक्षा-नीति टैग को हटाएं – jcesarmobile

+0

मेरा कॉर्डोवा प्रोजेक्ट है। मेरे पास दो 'config.xml' फ़ाइलें हैं I 'Www /' फ़ोल्डर के बगल में एक और दूसरा 'www /' फ़ोल्डर के अंदर है। यह मेरे लिए काम करता है अगर मैं 'config.xml' बदलता हूं जो 'www /' फ़ोल्डर के बाहर है। – BraveNinja

5

यह आपके मूल वेब दृश्य में यूआरएल खोलने की अनुशंसा नहीं है। कॉर्डोवा-प्लगइन-इनएपब्रोसर का उपयोग करें और बाहरी यूआरएल खोलने के लिए इनएपब्रोसर को कॉल करें:

function open_outer_url(url){ 
    if(window.cordova && window.cordova.InAppBrowser){ 
     window.cordova.InAppBrowser.open(url, "_blank", 'location=no'); 
    }else{ 
     window.open(url,'_blank'); 
    } 
} 
+2

के साथ प्रयास करें iframes ट्रिगर्स का कुछ उपयोग 'आंतरिक नेविगेशन' सुरक्षा प्रतिबंध। तो एक अच्छी तरह से व्यवहार एसपीए भी इसे सक्षम करने की आवश्यकता हो सकती है। – mpoisot

0

यह एक योजना आंतरिक रूप से उपयोग, बस इसे करने के लिए उपयोग/नेविगेशन अनुमति देते हैं।

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