2013-08-26 19 views
7

मैं फोनगैप में अपना पहला ऐप लिख रहा हूं और मैं इसे एंड्रॉइड डिवाइस पर परीक्षण कर रहा हूं। मेरा मानना ​​है कि मैंने उचित अनुमति दी है:फोनगैप एंड्रॉइड इंटरनेट काम नहीं कर रहा है

<uses-permission android:name="android.permission.INTERNET" /> 

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

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

HTML पृष्ठ:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <title></title> 
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&amp;sensor=true"></script> 
    <link rel="stylesheet" type="text/css" href="css/index.css" /> 
    </head> 
    <body> 
    <div class="app2"> 
     <div id="map" style="width: 200px; height: 150px"></div> 
     <script type="text/javascript"> 
     var xmlhttp = new XMLHttpRequest(); 
     xmlhttp.open("GET", "http://www.xxxxxxxx.com/mobile/iphone/xml/postal.asp?postal=33173", false); 
     xmlhttp.send(); 
     xmlDoc = xmlhttp.responseXML; 
     var myOptions = { 
      zoom: 10, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
     }; 
     var map = new google.maps.Map(document.getElementById("map"), myOptions); 
     var lat = x[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue; 
     var long = x[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue; 
     var pos = new google.maps.LatLng(lat, long); 
     var infowindow = new google.maps.InfoWindow({ 
      map: map, 
      position: pos, 
      content: "Postcode 33173(Lat:" + lat + ", Long:" + long + ")" 
     }); 
     map.setCenter(pos); 
     </script> 
     <script> 
     document.write("<table border='1'>"); 
     document.write("<tr><td>Postcode</td><td>latitude</td><td>longitude</td></tr>"); 
     var x = xmlDoc.getElementsByTagName("position"); 
     for (i = 0; i < x.length; i++) { 
      document.write("<tr><td>33173</td><td>"); 
      document.write(x[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue); 
      document.write("</td><td>"); 
      document.write(x[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue); 
      document.write("</td></tr>"); 
     } 
     document.write("</table>"); 
     </script> 
    </div> 
    </body> 
</html> 

मैनिफ़ेस्ट:

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0.0" android:windowSoftInputMode="adjustPan" package="dig.phonegap.loa_app" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" /> 
    <application android:allowBackup="false" 
    android:hardwareAccelerated="true" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name"> 
    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" 
    android:label="@string/app_name" 
    android:name="HelloWorld" 
    android:theme="@android:style/Theme.Black.NoTitleBar"> 
    <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
</application> 
</manifest> 
+1

यू अनुमति देते हैं config.xml –

+0

कि चाल किया, धन्यवाद पर पहुँच मूल * है। चूंकि आप पहले थे अगर आप इसे उत्तर के रूप में जोड़ते हैं तो मैं इसे सही के रूप में चिह्नित करूंगा। धन्यवाद। – collusionbdbh

उत्तर

8

इस config.xml पर प्रयास करें :

Plaform -> एंड्रॉयड -> रेस -> एक्सएमएल -> config.xml

Plaform -> ios -> config.xml

Plaform -> WP7 -> config.xml

Plaform -> wp8 - > config.xml

<access origin="*" /> 
+0

मैं इंटरनेट से डेटा नहीं प्राप्त करने के लिए खुद को मार रहा था, और मुझे 1 महीने का समाधान नहीं मिला! बहुत बहुत धन्यवाद!!! – rafi

3

सुनिश्चित करें कि आप में रेस/xml/config.xml सेट पास निम्नलिखित हैं:

<access origin="*" /> 
+0

मैं इंटरनेट से डेटा नहीं प्राप्त करने के लिए खुद को मार रहा था, और मुझे 1 महीने का समाधान नहीं मिला! बहुत बहुत धन्यवाद!!! – rafi

+0

मेरे पास 'www/res' के अंदर 'xml' नाम का फ़ोल्डर नहीं है। मेरे पास www फ़ोल्डर के अंदर 'config.xml' है। क्या मुझे इसे जोड़ना चाहिए ..? यदि हां तो क्या .. .. – shashwat

6

मैं एक ही समस्या थी, और config.xml के लिए निम्न जोड़ने के लिए किया था।

<access origin="*" /> 
<plugin name="cordova-plugin-whitelist" version="1" /> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
<allow-intent href="geo:*" /> 
<platform name="android"> 
    <allow-intent href="market:*" /> 
</platform> 
<platform name="ios"> 
    <allow-intent href="itms:*" /> 
    <allow-intent href="itms-apps:*" /> 
</platform> 
+0

क्या आप कृपया बता सकते हैं कि यह क्यों उनके मुद्दे के साथ collusionbdbh मदद करेगा? –

+4

नई कॉर्डोवा एंड्रॉइड परियोजनाओं ने प्रति डिफ़ॉल्ट श्वेतसूची प्लगइन स्थापित किया। जब आप किसी नए फोनगैप संस्करण (और एक नया कॉर्डोवा संस्करण) में अपग्रेड करते हैं तो आपका config.xml अनछुआ रहता है, लेकिन कॉर्डोवा-प्लगइन-श्वेतसूची आपके प्लगइन में जोड़ दी जाती है और इंटरनेट एक्सेस से इनकार कर देती है क्योंकि आपके पास व्हाइटलिस्ट सेटअप नहीं था। –

+0

मेरी समस्या हल! धन्यवाद। मैं एक समाधान के लिए हर जगह देख रहा था जो बस जोड़ने के बजाय काम करता था –

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