2015-03-02 6 views
5

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

अब मैं अपने आवेदन में स्क्लाइट कार्यक्षमता जोड़ना चाहता हूं। मैं देखता हूं कि कॉर्डोवा के लिए एक प्लगइन है, लेकिन मैं उत्सुक हूं, मैं फ़ॉलबैक कैसे लिख सकता हूं ताकि अगर कॉर्डोवा का उपयोग नहीं किया जा रहा है, तो मैं कॉर्डोवा प्लगइन का उपयोग किये बिना स्वाभाविक रूप से स्क्लाइट का उपयोग कर सकता हूं? आदर्श रूप से, मैं इसे सारणित करना चाहता हूं ताकि मूल स्क्लाइट ऑब्जेक्ट प्लगइन की तरह व्यवहार कर सके, इसलिए मैं अपने सभी परीक्षणों को एक नियमित ब्राउज़र में कर सकता हूं ताकि मुझे अपने ऐप को वास्तविक डिवाइस पर इंस्टॉल किया जा सके - एंड्रॉइड के लिए निर्माण का समय बहुत लंबा है, इसलिए मैं इसे जितना संभव हो उससे बचाना चाहता हूं।

धन्यवाद!

+0

पहले:: क्यों आप एमुलेटर कोशिश मत करो

यहाँ मेरी उदाहरण कोड (ES6) क्या है? दूसरा: समय का निर्माण इतना नहीं है! इसमें लगभग 20-40 सेकंड लग गए। तीसरा: आप लहर एमुलेटर का प्रयास कर सकते हैं। https://chrome.google.com/webstore/detail/ripple-emulator-beta/geelfhphabnejjhdalkjhgipohgpdnoc मैंने इसका उपयोग नहीं किया है। लेकिन सुना है कि आप वास्तव में फोनगैप ऐप्स का परीक्षण करने के लिए ब्राउज़र में इसे चला सकते हैं। – AtanuCSE

+1

आप डेस्कटॉप ब्राउज़र पर WebSQL का उपयोग कर सकते हैं। इंटरफ़ेस (एपीआई) वही है जो आप इसे कॉर्डोवा या डेस्कटॉप ब्राउज़र में उपयोग करते हैं। अंतर्निहित डेटाबेस SQLite हो सकता है, लेकिन यह ब्राउज़र पर निर्भर करता है। डेस्कटॉप ब्राउज़र के बीच WebSQL समर्थन के लिए यह [लिंक] (http://caniuse.com/#feat=sql-storage) देखें। – frank

+0

महान सवाल - मुझे लगता है कि किसी ने भी कोई जवाब नहीं दिया है। क्या आप कहीं भी अपने पास गए थे? – u01jmg3

उत्तर

-1

आप एक साधारण रैपर का उपयोग कर सकते हैं जो डिवाइस के लिए ब्राउज़र और SQLite के लिए WebSQL का उपयोग करता है। बस विभिन्न डेटाबेस ऑब्जेक्ट का उपयोग करें। WebSQL और SQLite API समान के करीब है। आपको केवल ब्राउज़र और डिवाइस के लिए अलग-अलग प्रारंभिकरण की आवश्यकता है।

var runiOS = false; 
var DB; 

// Check browser or device 

var onDeviceReady = new Promise(function(resolve, reject) {  
    if (document.URL.match(/^https?:/i)) { 
     console.log("Running in a browser..."); 
     resolve(); 
    } else { 
     console.log("Running in an app..."); 
     runiOS = true; 
     document.addEventListener("deviceready", resolve, false); 
    } 
}); 

// Run application 
onDeviceReady.then(function() { 
    // Init WebSQL on browser or SQLite on device 
    if (runiOS) { 
     DB = window.sqlitePlugin.openDatabase({ name: 'my.db', location: 'default' }, function (db) {}, function (error) { console.log('Open database ERROR: ' + JSON.stringify(error)); });   
     console.log('DB: SQLite'); 
    } 
    else { 
     DB = window.openDatabase('my', "0.1", "My list", 200000);  
     console.log('DB: WebSQL'); 
    } 

    // ... 

    db.transaction(function(tx) { 
     tx.executeSql('CREATE TABLE IF NOT EXISTS DemoTable (name, score)'); 
     tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Alice', 101]); 
     tx.executeSql('INSERT INTO DemoTable VALUES (?,?)', ['Betty', 202]); 
    }, function(error) { 
     console.log('Transaction ERROR: ' + error.message); 
    }, function() { 
     console.log('Populated database OK'); 
    }); 


    db.transaction(function(tx) { 
     tx.executeSql('SELECT count(*) AS mycount FROM DemoTable', [], function(tx, rs) { 
      console.log('Record count (expected to be 2): ' + rs.rows.item(0).mycount); 
     }, function(tx, error) { 
      console.log('SELECT error: ' + error.message); 
     }); 
    }); 
}); 
+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लिंक केवल स्टैक ओवरफ़्लो पर ही उत्तर दिए जाते हैं, आप लिंक के महत्वपूर्ण हिस्सों को ले कर और इसे अपने उत्तर में डालकर इस जवाब को बेहतर बना सकते हैं, यह सुनिश्चित करता है कि लिंक अभी भी एक उत्तर है यदि लिंक प्राप्त होता है बदला या हटा दिया :) – WhatsThePoint

+0

कृपया कुछ टूल या लाइब्रेरी को उत्तर के रूप में पोस्ट न करें। उत्तर में कम से कम प्रदर्शन [यह समस्या कैसे हल करता है] (http://meta.stackoverflow.com/a/251605)। –

+0

हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/18011077) –

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

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