2017-01-09 19 views
9

पर काम नहीं कर रहा है मेरे पास एक कॉर्डोवा ऐप है जो आईओनिक फ्रेमवर्क के साथ विकसित हुआ है जो आईओएस पर अच्छी तरह से काम करता था, लेकिन आईओएस 10 पर ऐसा नहीं होता है। जब मैं सिम्युलेटर में ऐप शुरू करता हूं तो कुछ भी नहीं कोणीय विशिष्ट कार्य (बाइंडिंग, घटनाएं, आदि)। यहां एक स्क्रीनशॉट है।कोणीय/आयनिक आईओएस 10

enter image description here

अगर मैं सफारी से डेवलपर उपकरण देते हैं मैं कंसोल में कुछ भी नहीं देख सकते हैं। हालांकि, अगर मैं रीफ्रेश बटन दबाता हूं और इंडेक्स पेज पुनः लोड किया जाता है तो सब ठीक से काम करना शुरू हो जाता है।

मुझे लगता है यह आईओएस से 10 पर सामग्री सुरक्षा नीति से संबंधित है मेरे सामग्री-सुरक्षा-नीति मेटा टैग इस तरह दिखता है:

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

मैं इसी तरह की समस्याओं दूसरों सामना करना पड़ा है से संबंधित विभिन्न सुझावों की कोशिश की है, लेकिन कुछ भी सहायक नहीं है। कोई सुझाव सराहना करता है।

+0

क्या आप इस '<मेटा http-equiv =" सामग्री-सुरक्षा-नीति "सामग्री =" डिफ़ॉल्ट-स्रोत * अंतराल: // तैयार फ़ाइल के साथ अपने ' 'टैग को प्रतिस्थापित करने का प्रयास कर सकते हैं: style-src' self '' असुरक्षित-इनलाइन '; img-src' self 'डेटा :; script-src *' unsafe-inline '' unsafe-eval ''> '? –

+0

इसके अलावा, मुझे लगता है कि आपने अपना कोड '$ ionicPlatform.ready() 'फ़ंक्शन के अंदर रखा है। –

+0

जैसा आपने सुझाव दिया था, मैंने मेटा टैग को बदल दिया, लेकिन मदद नहीं की। मेरा कोड मॉड्यूल के 'रन' ब्लॉक में चलता है। अगर मैं 'रन' से बुलाया गया तो 'iionicPlatform.ready()' में स्थानांतरित होने पर कोई बदलाव नहीं। लेकिन यह ऐसा कुछ है जो पिछले संस्करणों, 8 और 9 पर बहुत अच्छी तरह से काम करता था। –

उत्तर

5

मुझे यह काम मिल गया, और समस्या एक कारखाना था जो Google Analytics का उपयोग कर रहा था। कोड (आंशिक रूप से) इस तरह देखा:

(function() { 
    'use strict'; 

    angular 
     .module('appname.factories') 
     .factory("analyticsFactory", [ 
     function() { 
      var trackInitialize = function() { 
       if (typeof analytics !== undefined) { 
        analytics.startTrackerWithId("..."); 
       } 
       else { 
        console.log("Google Analytics Unavailable"); 
       } 
      }; 

      return { 
       trackInitialize: trackInitialize 
      } 
     }]); 
}()); 

इस मॉड्यूल के run ब्लॉक से बुलाया गया था और analytics उपलब्ध नहीं था। analytics का उपयोग करने के लिए फ़िक्स में $window फ़िक्स को ठीक करना था।

(function() { 
    'use strict'; 

    angular 
     .module('appname.factories') 
     .factory("analyticsFactory", [ 
     '$window', 
     function ($window) { 
      var emptyFn; 

      emptyFn = function() { }; 
      emptyFn['mocked'] = true; 

      var analytics = $window && $window['analytics'] ? $window['analytics'] : { 
       startTrackerWithId: emptyFn, 
       trackView: emptyFn, 
       trackEvent: emptyFn, 
       trackException: emptyFn, 
      }; 

      analytics.trackInitialize = function() { 
       analytics.startTrackerWithId("..."); 
       if (analytics['mocked']) 
        console.log("Google Analytics Unavailable"); 
      }; 

      return analytics; 
     }]); 
}()); 
+1

इसलिए इसने एक अपवाद फेंक दिया और बूटस्ट्रिपिंग – maurycy

+0

से एप्लिकेशन को रोक दिया हां, तो आप बूटस्ट्रैपिंग के साथ किसी समस्या के बारे में सही थे। –

3

मैं वास्तव में आपके उत्तर के साथ सराहना करता हूं, उत्तर के रूप में आपके उत्तर को साझा करने के लिए धन्यवाद। मुझे आयनिक 2 का उपयोग करके भी एक ही समस्या मिली है। एक सफेद स्क्रीन केवल दिखाया गया।

  • सीएसपी मेटा टैग: खोज और सिर दर्द का एक बहुत कुछ के बाद, मैं खाई आदि जोड़ने की तरह कुछ परिवर्तन को शामिल किया है तो मैं ios 10 में एक आयनिक निर्माण प्राप्त करने के लिए कुछ अंक मिले। अगर वे आपके कोड में त्रुटियां उत्पन्न कर रहे हैं तो उन्हें हटा दें।
  • सफारी देव उपकरण खोलें और डिवाइस का निरीक्षण करें। ऐप को पुनः लोड करने के लिए cmd-r को हिट करना सुनिश्चित करें। सफारी को देव उपकरण खुले होने से पहले हुई किसी भी त्रुटि/कंसोल लॉग को याद आती है।
  • आयनिक 2 परियोजनाएं। आपको टाइपस्क्रिप्ट त्रुटियों के लिए बिल्ड आउट की जांच करें। हो सकता है कि आप तीसरे पक्ष के मॉड्यूल के लिए प्रकार गुम हो।
  • अपना कोड लिंट करें। एक लिटर के माध्यम से अपना कोड चलाएं। ऐसी त्रुटियां हो सकती हैं जिन्हें आप अभी नहीं देख रहे हैं। एक लिटर आपके लिए इन्हें पकड़ने में सक्षम होगा। वी 2 प्रोजेक्ट शॉन का उपयोग आयनिक के स्लिंट नियमों का उपयोग करते हैं, और वी 1 परियोजनाएं एस्लिंट का उपयोग कर सकती हैं।

यह भी सुनिश्चित करें कि आप सभी इन विकल्पों को देखें। इस प्रकार की त्रुटि अक्सर आपके कोड में एक छोटी त्रुटि का कारण होती है। आपको डीबग करने और सही जानकारी प्रदान करने की आवश्यकता है। धन्यवाद।

+0

मैन, सीएमडी-आर ने मुझे अभी बचाया - मुझे नहीं पता था कि आदेश मौजूद है। जाहिर है कि मेरे कुछ कॉर्डोवा प्लगइन्स लोड नहीं किए जा रहे थे, लेकिन मुझे नहीं पता था क्योंकि इससे पहले कि मैं देव कंसोल खोल सकता हूं, उन्हें पहले त्रुटियों को फेंक दिया जा रहा है। धन्यवाद!! –