2015-05-22 10 views
11

में काम नहीं कर रहा है मुझे अपने ऐप में समस्या है, जब मैं स्थानीय होस्ट में ऐप चलाता हूं तो यह बिना किसी समस्या के काम कर रहा है और मैं चैनल सूची देख सकता हूं लेकिन जब मैं ऐप का परीक्षण करने की कोशिश करता हूं भौतिक उपकरण यह कुछ भी नहीं दिखाता है। मुझे लगता है कि समस्या उस विधि से आती है जिसका उपयोग मैं http के माध्यम से जेसन डेटा भेजने के लिए कर रहा हूं।कोणीय और आयनिक, HTTP वास्तविक डिवाइस IOS

(function() { 
'use strict'; 

angular.module('testApp').controller('ChannelCtrl', ['$state', 'testApi', ChannelCtrl]); 

function ChannelCtrl($state, testApi) { 
    var vm = this; 

myscreenApi.getChannels().then(function(data){ 
     vm.channels = data; 
    }); 

    vm.selectLeague = function(id){ 
     testApi.setChannelId(id); 
     $state.go("app.video"); 
    } 

}; 
})(); 

और यह मेरा समारोह channeldata

function getChannels() { 
     var deferred = $q.defer(), 
      cacheKey = "leagues", 
      ChannelsData = null; 

     if (ChannelsData) { 
      console.log("Found data inside cache", ChannelsData); 
      deferred.resolve(ChannelsData); 
      $window.alert("From Cache"); 
     } else { 
      $http.get("http://example.com/api/videos/getchannels") 
       .success(function(data) { 
        console.log("Received data via HTTP"); 
        self.leaguesCache.put(cacheKey, data); 
        $window.alert("From HTTP"); 
        deferred.resolve(data); 
       }) 
       .error(function(dataerr) { 
        console.log("Error while making HTTP call."); 
        $window.alert("Error baba daram " + dataerr); 
        deferred.reject(); 
       }); 
     } 
     return deferred.promise; 
    } 

पाने के लिए जब मैं JSON.parse (साथ डेटा भेजने), यह सही काम करता है।

vm.channels = JSON.parse('[{"Name":"MyScreen News","ID":46,"Thumbnail":"CB46.jpg","Videos":null}]'); 

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

<content src="index.html"/> 
    <access origin="*"/> 
    <preference name="webviewbounce" value="false"/> 
    <preference name="UIWebViewBounce" value="false"/> 
    <preference name="DisallowOverscroll" value="true"/> 
    <preference name="BackupWebStorage" value="none"/> 
    <feature name="StatusBar"> 
    <param name="ios-package" value="CDVStatusBar" onload="true"/> 
    </feature> 

सब है कि। आप आईआईएस एक्सप्रेस आप कुछ समस्याओं मिल सकती है उपयोग कर रहे हैं

cordova plugin add cordova-plugin-whitelist 

:;)

+0

क्या आपने अपना ऐप लॉन्च करते समय त्रुटि देखने के लिए एडीबी लॉगकैट का उपयोग करने का प्रयास किया है? – carton

+0

हाँ, मेरे पास है, कोई त्रुटि नहीं – Nima

+0

निश्चित रूप से एक बेवकूफ सवाल है लेकिन क्या आपको अपने भौतिक डिवाइस पर इंटरनेट कनेक्शन मिला है? (आप इसे http://example.com/api/videos/getchannels कहते हैं) – carton

उत्तर

11

आप कॉर्डोबा के नवीनतम संस्करण का उपयोग कर रहे हैं तो आप cordova plugin whitelist स्थापित करने के लिए हो सकता है।
मैंने कुछ और स्पष्टीकरण here विस्तृत किया है।

+0

जैसा कि मैंने config.xml में पहले से ही अपने विस्तार कोड में समझाया है। ? ; ( – Nima

+0

इससे कोई फर्क नहीं पड़ता। आप इसे [http://devgirl.org/2015/04/24/apache-cordova-newsflash/) पढ़ना चाहेंगे। – LeftyX

+0

इसे हल करने के रूप में चिह्नित करें, बिल्कुल ठीक था sollution – artdias90

2

परीक्षण सर्वर पर काम करते समय बिल्कुल वही समस्या थी। ऐसा लगता है कि आईओएस 9 ने ऐप को HTTPS की बजाय HTTP के माध्यम से सर्वर से कनेक्ट करने की इजाजत नहीं देकर अपने अनुप्रयोगों में सुरक्षा की एक परत जोड़ा।

इसे ठीक करने के लिए, आपको अपनी जानकारी में This Patch जोड़ना होगा। आईओएस बिल्ड।

याद रखें कि यह समाधान INSECURE है और उत्पादन वेब सेवाओं में उपयोग नहीं किया जाना चाहिए।

0

मुझे एक ही समस्या थी। आप कॉर्डोबा 4.0 की तुलना में अधिक उपयोग कर रहे हैं आप cordova plugin add cordova-plugin-whitelist

आप cordova -v

कोडिंग मुबारक चलाकर अपने कॉर्डोबा संस्करण की जांच कर सकते हैं चलाने के लिए होगा।

+0

मैंने उपर्युक्त प्लगइन स्थापित किया है भले ही यह है नहीं जा रहा है और मेरा कोड $ http.get ('http://118.67.249.142/CKC_NEW/c') है। फिर (फ़ंक्शन (प्रतिक्रिया) { console.log ("सम्मिलित करें") कोणीय .forEach (प्रतिक्रिया। डेटा, फ़ंक्शन (res, key) { var query = "adminshop1 (shopid, url) में INSERT या स्थानांतरित करें VALUES (?,?)"; $ cordovaSQLite.execute (डीबी, क्वेरी, [res.shopid, res.url , res.shopname, res.Description, res.type])। (फ़ंक्शन (res) { यदि (प्रतिक्रिया.data.length == कुंजी + 1) { $ rootScope.selectAll(); } }, फ़ंक्शन (त्रुटि) {}); }) }); – Raghuram

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