वेब के लिए सेंसर

डिवाइस पर मौजूद सेंसर, जैसे कि एक्सलरोमीटर, जाइरोस्कोप, और मैग्नेटोमीटर का ऐक्सेस पाने के लिए, जेनेरिक सेंसर एपीआई का इस्तेमाल करें.

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

जेनेरिक सेंसर एपीआई क्या है?

जेनेरिक सेंसर एपीआई ऐसे इंटरफ़ेस का सेट है जो खोज के नतीजों में, सेंसर डिवाइस को वेब प्लैटफ़ॉर्म पर ले जाते हैं. एपीआई में बेस शामिल है Sensor इंटरफ़ेस और कंक्रीट का सेट सेंसर क्लास को आज़माएं. बेस इंटरफ़ेस होने से, प्रॉडक्ट को लागू करने और स्पेसिफ़िकेशन में आसानी होती है कंक्रीट सेंसर क्लास के लिए डिज़ाइन किया गया है. उदाहरण के लिए, इन बातों पर ध्यान दें Gyroscope क्लास. यह बहुत छोटा है! कॉन्टेंट बनाने मुख्य फ़ंक्शन, बेस इंटरफ़ेस से तय होता है और Gyroscope इसमें सिर्फ़ तीन ऐंग्युलर वेलोसिटी को दिखाने वाले एट्रिब्यूट.

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

आपको लग सकता है कि वेब प्लैटफ़ॉर्म पहले से ही सेंसर डेटा उपलब्ध कराता है और आप बिलकुल सही हैं! इसके लिए इंस्टेंस, DeviceMotion और DeviceOrientation किसी गतिविधि की वजह से, मोशन सेंसर का डेटा बिना अनुमति के सार्वजनिक हो जाता है. हमें नए एपीआई की ज़रूरत क्यों है?

मौजूदा इंटरफ़ेस की तुलना में, जेनेरिक सेंसर एपीआई को कई फ़ायदे मिलते हैं:

  • जेनेरिक सेंसर एपीआई एक सेंसर फ़्रेमवर्क है, जिसे नई सेंसर क्लास और इनमें से हर क्लास में सामान्य इंटरफ़ेस होगा. एक सेंसर टाइप के लिए लिखा गया क्लाइंट कोड का उपयोग बहुत कम संशोधन के साथ एक अन्य के लिए किया जा सकता है!
  • सेंसर को कॉन्फ़िगर किया जा सकता है. उदाहरण के लिए, अपने हिसाब से सैंपलिंग की फ़्रीक्वेंसी सेट की जा सकती है ज़रूरत के हिसाब से काम करते हैं.
  • प्लैटफ़ॉर्म पर सेंसर उपलब्ध है या नहीं, यह पता लगाया जा सकता है.
  • सेंसर की रीडिंग में टाइमस्टैंप बहुत ज़्यादा सटीक होते हैं. इससे सेंसर के साथ बेहतर सिंक किया जाता है आपके ऐप्लिकेशन में की गई गतिविधियाँ.
  • सेंसर डेटा मॉडल और कोऑर्डिनेट सिस्टम साफ़ तौर पर बताए गए हैं. इनसे ब्राउज़र वेंडर को ये काम करने में मदद मिलती है इंटरऑपरेबल सॉल्यूशन लागू किए जा सकते हैं.
  • जेनरिक सेंसर पर आधारित इंटरफ़ेस पर डीओएम का इस्तेमाल नहीं किया जा सकता. इसका मतलब है कि ये दोनों न तो navigator हैं और न ही window ऑब्जेक्ट) है. इससे आने वाले समय में सेवा में एपीआई के इस्तेमाल के अवसर मिलते हैं या बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले JavaScript रनटाइम में लागू करना डिवाइस.
  • जेनेरिक सेंसर के लिए सुरक्षा और निजता से जुड़े पहलू सबसे ज़्यादा अहम होते हैं एपीआई और पुराने सेंसर एपीआई की तुलना में बेहतर सुरक्षा उपलब्ध कराता है. इस इंटिग्रेशन के साथ इंटिग्रेट किया गया है अनुमतियां एपीआई पर टैप करें.
  • स्क्रीन कोऑर्डिनेट के साथ अपने-आप सिंक होने की सुविधा Accelerometer, Gyroscope, LinearAccelerationSensor, और AbsoluteOrientationSensor, RelativeOrientationSensor और Magnetometer.

उपलब्ध सामान्य सेंसर एपीआई

लिखने के समय, ऐसे कई सेंसर मौजूद होते हैं जिनके साथ एक्सपेरिमेंट किया जा सकता है.

मोशन सेंसर:

  • Accelerometer
  • Gyroscope
  • LinearAccelerationSensor
  • AbsoluteOrientationSensor
  • RelativeOrientationSensor
  • GravitySensor

पर्यावरण सेंसर:

  • AmbientLightSensor (Chromium में #enable-generic-sensor-extra-classes फ़्लैग के पीछे.)
  • Magnetometer (Chromium में #enable-generic-sensor-extra-classes फ़्लैग के पीछे.)

सुविधा की पहचान

हार्डवेयर एपीआई की सुविधा की पहचान मुश्किल होती है, क्योंकि आपको दोनों ही यह पता लगाना होता है कि ब्राउज़र डिवाइस के इंटरफ़ेस पर काम करता है. साथ ही, यह भी बताता है कि डिवाइस में उससे जुड़ा सेंसर है या नहीं. चेकिंग खाता कि ब्राउज़र एक आसान इंटरफ़ेस का समर्थन करता है या नहीं. (Accelerometer को इनमें से किसी से बदलें अन्य इंटरफ़ेस जिनका उल्लेख ऊपर किया गया है.)

if ('Accelerometer' in window) {
  // The `Accelerometer` interface is supported by the browser.
  // Does the device have an accelerometer, though?
}

सुविधा की पहचान करने वाले असल नतीजे पाने के लिए, आपको सेंसर से भी कनेक्ट करना होगा. इस उदाहरण में बताया गया है कि ऐसा कैसे किया जा सकता है.

let accelerometer = null;
try {
  accelerometer = new Accelerometer({ frequency: 10 });
  accelerometer.onerror = (event) => {
    // Handle runtime errors.
    if (event.error.name === 'NotAllowedError') {
      console.log('Permission to access sensor was denied.');
    } else if (event.error.name === 'NotReadableError') {
      console.log('Cannot connect to the sensor.');
    }
  };
  accelerometer.onreading = (e) => {
    console.log(e);
  };
  accelerometer.start();
} catch (error) {
  // Handle construction errors.
  if (error.name === 'SecurityError') {
    console.log('Sensor construction was blocked by the Permissions Policy.');
  } else if (error.name === 'ReferenceError') {
    console.log('Sensor is not supported by the User Agent.');
  } else {
    throw error;
  }
}

पॉलीफ़िल

जो ब्राउज़र जेनेरिक सेंसर एपीआई के साथ काम नहीं करते उनके लिए, polyfill की सुविधा उपलब्ध है. पॉलीफ़िल से आपको ये काम करने में मदद मिलती है केवल प्रासंगिक सेंसर लोड करें' लागू करना.

// Import the objects you need.
import { Gyroscope, AbsoluteOrientationSensor } from './src/motion-sensors.js';

// And they're ready for use!
const gyroscope = new Gyroscope({ frequency: 15 });
const orientation = new AbsoluteOrientationSensor({ frequency: 60 });

ये सभी सेंसर क्या हैं? मैं इनका इस्तेमाल कैसे करूं?

सेंसर के बारे में जानकारी देने की ज़रूरत हो सकती है. अगर आपको सेंसर के बारे में पता है, तो सीधे कोडिंग सेक्शन पर जाएं. आइए, एक-दूसरे के साथ काम करने वाले करते हैं.

एक्सलरोमीटर और लीनियर ऐक्सेलरेशन सेंसर

एक्सलरोमीटर सेंसर माप

Accelerometer सेंसर तीन ऐक्सिस (X, Y, और Z) पर सेंसर को होस्ट करने वाले डिवाइस के त्वरण को मापता है. यह सेंसर इनर्शियल सेंसर, इसका मतलब है कि जब डिवाइस लीनियर फ़्री फ़ॉल में होता है, तो कुल त्वरण, 0 मी/से2 होगा और जब कोई डिवाइस टेबल पर सीधे लेटा होगा, तो रफ़्तार ऊपर की दिशा में (Z ऐक्सिस), पृथ्वी के गुरुत्वाकर्षण के बराबर होगा, जैसे कि g ≈ +9.8 m/s2 यह डिवाइस को ऊपर की ओर धकेलने वाली टेबल के बल को माप रहा है. अगर आप डिवाइस को दाईं ओर, X ऐक्सिस पर त्वरण धनात्मक या ऋणात्मक होगा, अगर डिवाइस दाईं ओर.

एक्सलरोमीटर का इस्तेमाल इन कामों के लिए किया जा सकता है: कदमों की गिनती, मोशन सेंसिंग या आसान डिवाइस स्क्रीन की दिशा. अक्सर, एक्सलरोमीटर माप को अन्य स्रोतों से डेटा के साथ मिलाया जाता है फ़्यूजन सेंसर, जैसे कि ओरिएंटेशन सेंसर बनाते हैं.

कॉन्टेंट बनाने LinearAccelerationSensor सेंसर को होस्ट करने वाले डिवाइस पर लागू त्वरण को मापता है. इसमें योगदान के लिए इस्तेमाल होने वाले गुरुत्वाकर्षण. जब कोई डिवाइस आराम में हो, जैसे कि टेबल पर सीधा लेटा हुआ हो, तो सेंसर मापेगा तीन ऐक्सिस पर ≈ 0 m/s2 त्वरण.

गुरुत्वाकर्षण सेंसर

उपयोगकर्ताओं के लिए गुरुत्वाकर्षण सेंसर के नज़दीक के रीडिंग को मैन्युअल रूप से इस तरीके से प्राप्त करना पहले से ही संभव है हम Accelerometer और LinearAccelerometer रीडिंग की मैन्युअल तौर पर जांच करते हैं. हालांकि, ऐसा करना मुश्किल हो सकता है और इन सेंसर से मिली वैल्यू कितनी सटीक है, इस पर निर्भर करता है. Android जैसे प्लैटफ़ॉर्म यह काम कर सकते हैं आप ऑपरेटिंग सिस्टम के हिस्से के रूप में गुरुत्वाकर्षण रीडिंग उपलब्ध करा सकते हैं, जो हिसाब लगाने के लिए, और उपयोगकर्ता के हार्डवेयर के आधार पर ज़्यादा सटीक वैल्यू दें. साथ ही, इन वैल्यू का इस्तेमाल आसानी से किया जा सके की शर्तें पढ़ें. कॉन्टेंट बनाने GravitySensor, इफ़ेक्ट दिखाता है गुरुत्वाकर्षण की वजह से डिवाइस के X, Y, और Z ऐक्सिस पर त्वरण का.

जाइरोस्कोप

जाइरोस्कोप सेंसर माप

Gyroscope सेंसर, डिवाइस के लोकल X, Y, और Z ऐक्सिस के आस-पास, रेडियन प्रति सेकंड में ऐंग्युलर वेलोसिटी. ज़्यादातर उपभोक्ता मकैनिकल डिवाइस (एमईएमएस) हैं जाइरोस्कोप, जो इनर्शियल सेंसर होते हैं. ये सेंसर इनर्टियल कोरिऑलिस फ़ोर्स. एमईएमएस जाइरोस्कोप का खतरा ज़्यादा होता है गुरुत्वाकर्षण सेंसिटिविटी की वजह से सेंसर की गुरुत्वीय संवेदनशीलता की वजह से मकैनिकल सिस्टम का इस्तेमाल किया जा रहा था. जाइरोस्कोप, सापेक्ष ज़्यादा फ़्रीक्वेंसी पर घूमता है, जैसे कि किलोहर्ट्ज़ (kHz) का 10 सेकंड, और इसलिए, हो सकता है कि दूसरे सेंसर की तुलना में ज़्यादा बिजली खर्च हो.

ओरिएंटेशन सेंसर

ऐब्सलूट ओरिएंटेशन सेंसर का मेज़रमेंट

कॉन्टेंट बनाने AbsoluteOrientationSensor एक फ़्यूजन सेंसर है जो पृथ्वी के निर्देशांक सिस्टम के संबंध में किसी डिवाइस के रोटेशन को मापता है. हालांकि, RelativeOrientationSensor किसी स्टेशनरी के संबंध में मोशन सेंसर होस्ट करने वाले डिवाइस के रोटेशन का प्रतिनिधित्व करने वाला डेटा देता है रेफ़रंस कोऑर्डिनेट सिस्टम का इस्तेमाल करना.

सभी आधुनिक 3D JavaScript फ़्रेमवर्क, क्वाटर्नियन के साथ काम करते हैं और रोटेशन को दर्शाने के लिए, रोटेशन मैट्रिक्स; हालांकि, यदि आप सीधे WebGL का उपयोग करते है, तो OrientationSensor में आसानी से दोनों quaternion प्रॉपर्टी और एक populateMatrix() तरीका. यहां कुछ स्निपेट दिए गए हैं:

three.js

let torusGeometry = new THREE.TorusGeometry(7, 1.6, 4, 3, 6.3);
let material = new THREE.MeshBasicMaterial({ color: 0x0071c5 });
let torus = new THREE.Mesh(torusGeometry, material);
scene.add(torus);

// Update mesh rotation using quaternion.
const sensorAbs = new AbsoluteOrientationSensor();
sensorAbs.onreading = () => torus.quaternion.fromArray(sensorAbs.quaternion);
sensorAbs.start();

// Update mesh rotation using rotation matrix.
const sensorRel = new RelativeOrientationSensor();
let rotationMatrix = new Float32Array(16);
sensor_rel.onreading = () => {
  sensorRel.populateMatrix(rotationMatrix);
  torus.matrix.fromArray(rotationMatrix);
};
sensorRel.start();

BABYLON

const mesh = new BABYLON.Mesh.CreateCylinder('mesh', 0.9, 0.3, 0.6, 9, 1, scene);
const sensorRel = new RelativeOrientationSensor({ frequency: 30 });
sensorRel.onreading = () => mesh.rotationQuaternion.FromArray(sensorRel.quaternion);
sensorRel.start();

WebGL

// Initialize sensor and update model matrix when new reading is available.
let modMatrix = new Float32Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
const sensorAbs = new AbsoluteOrientationSensor({ frequency: 60 });
sensorAbs.onreading = () => sensorAbs.populateMatrix(modMatrix);
sensorAbs.start();

// Somewhere in rendering code, update vertex shader attribute for the model
gl.uniformMatrix4fv(modMatrixAttr, false, modMatrix);

स्क्रीन की दिशा बदलने वाले सेंसर, इस्तेमाल के कई उदाहरण देते हैं. जैसे, इमर्सिव गेमिंग, ऑगमेंटेड, और वर्चुअल गेमिंग हकीकत है.

मोशन सेंसर, बेहतर इस्तेमाल के उदाहरण, और इसकी ज़रूरी शर्तों के बारे में ज़्यादा जानने के लिए, यहां जाएं मोशन सेंसर के बारे में जानकारी देने वाला दस्तावेज़.

स्क्रीन कोऑर्डिनेट के साथ सिंक करने की सुविधा

डिफ़ॉल्ट रूप से, स्पेशल सेंसर की रीडिंग का डेटा यह ऐसे लोकल निर्देशांक सिस्टम में मौजूद होता है जो डिवाइस से जुड़ा होता है और स्क्रीन ओरिएंटेशन के बिना जोड़ें.

डिवाइस कोऑर्डिनेट सिस्टम
डिवाइस कोऑर्डिनेट सिस्टम

हालांकि, गेम या ऑगमेंटेड और वर्चुअल रिएलिटी जैसे इस्तेमाल के कई मामलों में सेंसर रीडिंग को जिनका समाधान निर्देशांक सिस्टम में किया जाता है, जो इसके बजाय स्क्रीन ओरिएंटेशन से जुड़ा होता है.

स्क्रीन कोऑर्डिनेट सिस्टम
स्क्रीन कोऑर्डिनेट सिस्टम

पहले, सेंसर रीडिंग को स्क्रीन कोऑर्डिनेट पर फिर से मैप करने की सुविधा JavaScript में लागू करनी पड़ती थी. यह तरीका अकुशल है और इसकी वजह से वेब की जटिलता भी काफ़ी बढ़ जाती है ऐप्लिकेशन कोड; वेब ऐप्लिकेशन को स्क्रीन ओरिएंटेशन में हुए बदलावों को देखना होगा और निर्देशांक पूरे करने होंगे सेंसर की रीडिंग के लिए रूपांतरण, जो कि ओयलर कोणों के लिए करना कोई साधारण चीज़ नहीं है या क्वाटर्नियन.

जेनेरिक सेंसर एपीआई ज़्यादा आसान और भरोसेमंद समाधान उपलब्ध कराता है! स्थानीय निर्देशांक सिस्टम यह है सभी तय स्पेशल सेंसर क्लास के लिए कॉन्फ़िगर किया जा सकता है: Accelerometer, Gyroscope, LinearAccelerationSensor, AbsoluteOrientationSensor, RelativeOrientationSensor, और Magnetometer. सेंसर ऑब्जेक्ट कंस्ट्रक्टर को referenceFrame विकल्प पास करने से, उपयोगकर्ता तय करता है कि दिखाए गए रीडिंग का समाधान device या स्क्रीन निर्देशांक.

// Sensor readings are resolved in the Device coordinate system by default.
// Alternatively, could be RelativeOrientationSensor({referenceFrame: "device"}).
const sensorRelDevice = new RelativeOrientationSensor();

// Sensor readings are resolved in the Screen coordinate system. No manual remapping is required!
const sensorRelScreen = new RelativeOrientationSensor({ referenceFrame: 'screen' });

आइए कोड करें!

जेनेरिक सेंसर एपीआई को इस्तेमाल करना बहुत आसान है! सेंसर इंटरफ़ेस में यह है start() और stop() सेंसर की स्थिति और कई तरीकों को कंट्रोल करने के तरीके सेंसर के चालू होने, गड़बड़ियों, और नए उपलब्ध होने के बारे में सूचनाएं पाने के लिए इवेंट हैंडलर रीडिंग. कंक्रीट सेंसर क्लास आम तौर पर, रीडिंग एट्रिब्यूट को बेस में जोड़ती हैं क्लास.

डेवलपमेंट एनवायरमेंट

डेवलपमेंट के दौरान, localhost के ज़रिए सेंसर इस्तेमाल किए जा सकेंगे. अगर आपको यह पता लगाना है कि मोबाइल डिवाइस, सेट अप पोर्ट फ़ॉरवर्डिंग अपने लोकल सर्वर का इस्तेमाल करें और आप शानदार बनाने के लिए तैयार हैं!

जब आपका कोड तैयार हो जाए, तो उसे एचटीटीपीएस पर काम करने वाले सर्वर पर डिप्लॉय करें. GitHub पेज, एचटीटीपीएस पर दिखाए जाते हैं. इस वजह से, इसे शेयर करने के लिए यह एक अच्छी जगह बन जाती है आपके डेमो.

3D मॉडल रोटेशन

इस आसान उदाहरण में, हम रोटेशन को बदलने के लिए ऐब्सलूट ओरिएंटेशन सेंसर से मिले डेटा का इस्तेमाल करते हैं 3D मॉडल का क्वाटरनियन. model एकT3.js है Object3D क्लास का इंस्टेंस, जिसमें एक quaternion प्रॉपर्टी. कॉन्टेंट बनाने कोड स्निपेट कोड ओरिएंटेशन फ़ोन डेमो में दिखाया गया है कि किसी 3D मॉडल को घुमाने के लिए, ऐब्सलूट ओरिएंटेशन सेंसर का इस्तेमाल कैसे किया जा सकता है.

function initSensor() {
  sensor = new AbsoluteOrientationSensor({ frequency: 60 });
  sensor.onreading = () => model.quaternion.fromArray(sensor.quaternion);
  sensor.onerror = (event) => {
    if (event.error.name == 'NotReadableError') {
      console.log('Sensor is not available.');
    }
  };
  sensor.start();
}

डिवाइस का ओरिएंटेशन, WebGL सीन में 3D model रोटेशन में दिखेगा.

सेंसर, 3D मॉडल का ओरिएंटेशन अपडेट कर देता है
सेंसर, 3D मॉडल की स्क्रीन की दिशा को अपडेट करता है

पंचमीटर

निम्न कोड स्निपेट पंचमीटर डेमो, यह बताना कि रैखिक त्वरण सेंसर की मदद से, किसी को यह मानकर चलते हैं कि वह शुरुआत में आराम से लेटा हुआ है.

this.maxSpeed = 0;
this.vx = 0;
this.ax = 0;
this.t = 0;

/* … */

this.accel.onreading = () => {
  let dt = (this.accel.timestamp - this.t) * 0.001; // In seconds.
  this.vx += ((this.accel.x + this.ax) / 2) * dt;

  let speed = Math.abs(this.vx);

  if (this.maxSpeed < speed) {
    this.maxSpeed = speed;
  }

  this.t = this.accel.timestamp;
  this.ax = this.accel.x;
};

वर्तमान वेग की गणना त्वरण फ़ंक्शन के समाकलन के सन्निकटन के रूप में की जाती है.

पंच स्पीड मापने के लिए डेमो वेब ऐप्लिकेशन
पंच स्पीड का मेज़रमेंट

Chrome DevTools की मदद से डीबग करने और सेंसर बदलने की सुविधा

कुछ मामलों में आपको जेनेरिक सेंसर एपीआई के साथ काम करने के लिए किसी डिवाइस की ज़रूरत नहीं होती. Chrome DevTools Google Analytics 4 प्रॉपर्टी सिम्युलेटेड डिवाइस ओरिएंटेशन का इस्तेमाल करते हैं.

Chrome DevTools का इस्तेमाल, वर्चुअल फ़ोन के ओरिएंटेशन डेटा को बदलने के लिए किया गया है
Chrome DevTools की मदद से डिवाइस की स्क्रीन की दिशा को सिम्युलेट करना

निजता और सुरक्षा

सेंसर रीडिंग, संवेदनशील जानकारी होती है. इस पर नुकसान पहुंचाने वाले वेब पेजों के ज़रिए कई तरह के हमले हो सकते हैं. जेनेरिक सेंसर एपीआई को लागू करने से कुछ पाबंदियां लागू होती हैं, ताकि सुरक्षा को कम किया जा सके और निजता से जुड़े जोखिमों की आशंका है. उन डेवलपर को इन सीमाओं का ध्यान रखना चाहिए जो इसका इस्तेमाल करना चाहते हैं: एपीआई के बारे में ज़्यादा जानकारी देते हैं. आइए, इन चीज़ों के बारे में थोड़ा जानते हैं.

सिर्फ़ एचटीटीपीएस

जेनेरिक सेंसर एपीआई एक बेहतरीन सुविधा है, इसलिए ब्राउज़र इसे सिर्फ़ सुरक्षित कॉन्टेक्स्ट पर अनुमति देता है. तय सीमा में इसका मतलब है कि जेनेरिक सेंसर एपीआई का इस्तेमाल करने के लिए, आपको एचटीटीपीएस के ज़रिए अपना पेज ऐक्सेस करना होगा. डेवलपमेंट के दौरान http://localhost से ऐसा किया जा सकता है. हालांकि, प्रोडक्शन के लिए आपको आपके सर्वर पर एचटीटीपीएस होना ज़रूरी है. सबसे सही तरीकों के बारे में जानने के लिए, सुरक्षित और सुरक्षित कलेक्शन देखें और दिशा-निर्देशों का पालन करें.

अनुमतियों की नीति का इंटिग्रेशन

जेनेरिक में अनुमति नीति का इंटिग्रेशन सेंसर एपीआई, फ़्रेम के लिए सेंसर डेटा के ऐक्सेस को कंट्रोल करता है.

डिफ़ॉल्ट रूप से, Sensor ऑब्जेक्ट सिर्फ़ मुख्य फ़्रेम या सेम ऑरिजिन वाले सबफ़्रेम में बनाए जा सकते हैं. इस तरह, क्रॉस-ऑरिजिन iframe को सेंसर डेटा को बिना अनुमति के पढ़ने से रोका जाता है. यह डिफ़ॉल्ट व्यवहार को सक्रिय रूप से सक्षम या अक्षम करके संशोधित किया जा सकता है. नीति से कंट्रोल होने वाली सुविधाएं शामिल न करें.

नीचे दिए गए स्निपेट में, क्रॉस-ऑरिजिन iframe को एक्सलरोमीटर डेटा का ऐक्सेस देने का तरीका बताया गया है, जिसका मतलब है कि अब वहां Accelerometer या LinearAccelerationSensor ऑब्जेक्ट बनाए जा सकते हैं.

<iframe src="https://third-party.com" allow="accelerometer" />

सेंसर रीडिंग की डिलीवरी निलंबित की जा सकती है

सेंसर रीडिंग को सिर्फ़ दिखने वाले वेब पेज से ऐक्सेस किया जा सकता है. इसका मतलब है कि उपयोगकर्ता वाकई में ऐसा कर रहा है उससे कैसे इंटरैक्ट करते हैं. इसके अलावा, सेंसर डेटा को पैरंट फ़्रेम में नहीं जोड़ा जाएगा, अगर उपयोगकर्ता क्रॉस-ऑरिजिन सबफ़्रेम पर फ़ोकस में बदलाव करता है. इससे पैरंट फ़्रेम, उपयोगकर्ता के इनपुट का अनुमान नहीं लगा पाता.

आगे क्या करना है?

आने वाले समय में, कुछ खास सेंसर क्लास को लागू किया जाएगा. जैसे, ऐंबियंट लाइट सेंसर या प्रॉक्सिमिटी सेंसर; हालांकि, उस विलुप्त होने की क्षमता के कारण जेनेरिक सेंसर फ़्रेमवर्क सेंसर प्रकार.

जेनेरिक सेंसर एपीआई को बेहतर बनाने के लिए, आने वाले समय में इस्तेमाल किया जा सकने वाला एक और अहम क्षेत्र है जेनेरिक फ़िलहाल, सेंसर से जुड़ी जानकारी को कैंडिडेट के सुझाव के तौर पर दिखाया गया है. इसका मतलब है कि अब भी समय है का इस्तेमाल करके, समस्याओं को ठीक किया जा सकता है. साथ ही, ऐसी नई सुविधाएं जोड़ी जा सकती हैं जिन्हें डेवलपर के लिए

आप सहायता कर सकते हैं!

सेंसर से जुड़ी ज़रूरी शर्तें पूरी हो गई हैं उम्मीदवार के सुझाव वयस्क होने का स्तर तय किया गया है, इसलिए वेब और ब्राउज़र डेवलपर के सुझावों की बहुत सराहना की जाती है. हमें अनुमति दें यह जानें कि किन सुविधाओं को जोड़ना अच्छा रहेगा या क्या कुछ ऐसा है जिसे आप मौजूदा एपीआई.

कृपया खास जानकारी से जुड़ी समस्याओं की शिकायत भी करें Chrome को लागू करने में गड़बड़ियों के तौर पर सेव करता है.

संसाधन

स्वीकार की गई

इस लेख की समीक्षा जो मेडली ने की है और कायस बास्क. इन्होंने हीरो इमेज दी है मिस्को को, विकिमीडिया कॉमंस.