2016-06-28 7 views
5

में काम नहीं कर रहा है मैं कोडपेन में एक साधारण मौसम ऐप को लागू करने की कोशिश कर रहा हूं। ऐप लोकलहोस्ट पर ठीक काम करता है यह नेविगेटर.जोलोकेशन का उपयोग करने की अनुमति मांगता है और यदि स्वीकार किया जाता है तो यह मौसम दिखाता है, लेकिन कोडपेन पर यह अनुमति मांग भी नहीं रहा है।जावास्क्रिप्ट - geolocation कोडपेन

यहाँ

लिंक

http://codepen.io/asamolion/pen/BzWLVe

यहाँ जे एस समारोह

function getWeather() { 
    'use strict'; 
    $('#getWeatherButton').hide(); 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(function (position) { 
      var url = 'http://api.openweathermap.org/data/2.5/weather?APPID=53ac88144e6ee627ad0ed85277545ff9'; 
      //   var url = 'example.js'; 
      var apiCall = url + '&lat=' + position.coords.latitude + '&lon=' + position.coords.longitude; 
      //   window.location.href = apiCall; 
      $.getJSON(apiCall, function (json) { 
       setSkycon(parseInt(json.weather[0].id, 10)); 
       $('#location').html(json.name + ', ' + json.sys.country); 
       var temp = (Math.round((json.main.temp - 273.15) * 100)/100); 
       $('#temp').html(temp + '<span id="degree">&deg;</span><span id="FC" onclick="convert()">C</span>'); 
       $('#condition').html(json.weather[0].main); 
      }); 

     }); 
    } 
}; 

किसी को भी मुझे बता सकते हैं क्यों codepen अनुमति मांगने वाला नहीं है क्या है?

उत्तर

3

क्रोम में सांत्वना के अनुसार:

getCurrentPosition() और watchPosition() असुरक्षित मूल पर पदावनत कर रहे हैं। इस सुविधा का उपयोग करने के लिए, आपको अपने एप्लिकेशन को एक सुरक्षित उत्पत्ति, जैसे HTTPS पर स्विच करने पर विचार करना चाहिए।

यहां अधिक जानकारी है: https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins अनिवार्य रूप से क्रोम केवल HTTPS पर स्थान जानकारी भेजना चाहता है। हालांकि, डेवलपर्स को परीक्षण करने की अनुमति देने के लिए वे localhost का इलाज करते हैं जैसे कि यह एक सुरक्षित नेटवर्क था। उम्मीद है की यह मदद करेगा!

11

मुझे एक ही चुनौती पर यही समस्या थी। बस http के बजाय https के साथ अपना कोडपेन प्रीपेड करें और आप ठीक होंगे।

इस तरह

:

https://codepen.io/crownedjitter/pen/AXzdvQ

आप इस उपयोग करना चाहते हैं:

navigator.geolocation.getCurrentPosition(); 
क्रोम में

+0

मैंने एक अलग भौगोलिक स्थान API का उपयोग किया। विशेष रूप से ip-api.com जैसा कि मैंने इसे आसान पाया है। फिर भी धन्यवाद। – asamolion

+0

मुझे नेविगेटर.जोलोकेशन अधिक सटीक होने के लिए मिलता है। उदाहरण के लिए, आपका ऐप मुझे 50 मील दूर एक शहर में रखता है जहां से मैं वास्तव में रहता हूं। – crownedjitter

+0

जानकारी के लिए धन्यवाद। में इसे याद रखूंगा। – asamolion

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