205 lines
6.0 KiB
Markdown
205 lines
6.0 KiB
Markdown
|
<!---
|
|||
|
Licensed to the Apache Software Foundation (ASF) under one
|
|||
|
or more contributor license agreements. See the NOTICE file
|
|||
|
distributed with this work for additional information
|
|||
|
regarding copyright ownership. The ASF licenses this file
|
|||
|
to you under the Apache License, Version 2.0 (the
|
|||
|
"License"); you may not use this file except in compliance
|
|||
|
with the License. You may obtain a copy of the License at
|
|||
|
|
|||
|
http://www.apache.org/licenses/LICENSE-2.0
|
|||
|
|
|||
|
Unless required by applicable law or agreed to in writing,
|
|||
|
software distributed under the License is distributed on an
|
|||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|||
|
KIND, either express or implied. See the License for the
|
|||
|
specific language governing permissions and limitations
|
|||
|
under the License.
|
|||
|
-->
|
|||
|
|
|||
|
# cordova-plugin-device-orientation
|
|||
|
|
|||
|
這個外掛程式提供了對設備的指南針的訪問。 羅盤是感應器,可檢測的方向或設備通常指從設備的頂部的標題。 它的措施中從 0 度到 359.99,其中 0 是北部的標題。
|
|||
|
|
|||
|
訪問是通過一個全球 `navigator.compass` 物件。
|
|||
|
|
|||
|
雖然該物件附加到全球範圍內 `導航器`,它不可用直到 `deviceready` 事件之後。
|
|||
|
|
|||
|
document.addEventListener("deviceready", onDeviceReady, false);
|
|||
|
function onDeviceReady() {
|
|||
|
console.log(navigator.compass);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
## 安裝
|
|||
|
|
|||
|
cordova plugin add cordova-plugin-device-orientation
|
|||
|
|
|||
|
|
|||
|
## 支援的平臺
|
|||
|
|
|||
|
* 亞馬遜火 OS
|
|||
|
* Android 系統
|
|||
|
* 黑莓 10
|
|||
|
* 瀏覽器
|
|||
|
* 火狐瀏覽器的作業系統
|
|||
|
* iOS
|
|||
|
* 泰
|
|||
|
* Windows Phone 7 和第 8 (如果在硬體中可用)
|
|||
|
* Windows 8
|
|||
|
|
|||
|
## 方法
|
|||
|
|
|||
|
* navigator.compass.getCurrentHeading
|
|||
|
* navigator.compass.watchHeading
|
|||
|
* navigator.compass.clearWatch
|
|||
|
|
|||
|
## navigator.compass.getCurrentHeading
|
|||
|
|
|||
|
獲取當前的羅經航向。羅經航向被經由一個 `CompassHeading` 物件,使用 `compassSuccess` 回呼函數。
|
|||
|
|
|||
|
navigator.compass.getCurrentHeading(compassSuccess, compassError);
|
|||
|
|
|||
|
|
|||
|
### 示例
|
|||
|
|
|||
|
function onSuccess(heading) {
|
|||
|
alert('Heading: ' + heading.magneticHeading);
|
|||
|
};
|
|||
|
|
|||
|
function onError(error) {
|
|||
|
alert('CompassError: ' + error.code);
|
|||
|
};
|
|||
|
|
|||
|
navigator.compass.getCurrentHeading(onSuccess, onError);
|
|||
|
|
|||
|
|
|||
|
## navigator.compass.watchHeading
|
|||
|
|
|||
|
獲取設備的當前標題的間隔時間定期。檢索到的標題,每次執行 `headingSuccess` 回呼函數。
|
|||
|
|
|||
|
返回的表 ID 引用的指南針手錶的時間間隔。表 ID 可用於與 `navigator.compass.clearWatch` 停止看 navigator.compass。
|
|||
|
|
|||
|
var watchID = navigator.compass.watchHeading(compassSuccess, compassError, [compassOptions]);
|
|||
|
|
|||
|
|
|||
|
`compassOptions` 可能包含以下項:
|
|||
|
|
|||
|
* **frequency**: 經常如何檢索以毫秒為單位的羅經航向。*(Number)*(預設值: 100)
|
|||
|
* **filter**: 啟動 watchHeading 成功回檔所需的度的變化。當設置此值時,**frequency**將被忽略。*(Number)*
|
|||
|
|
|||
|
### 示例
|
|||
|
|
|||
|
function onSuccess(heading) {
|
|||
|
var element = document.getElementById('heading');
|
|||
|
element.innerHTML = 'Heading: ' + heading.magneticHeading;
|
|||
|
};
|
|||
|
|
|||
|
function onError(compassError) {
|
|||
|
alert('Compass error: ' + compassError.code);
|
|||
|
};
|
|||
|
|
|||
|
var options = {
|
|||
|
frequency: 3000
|
|||
|
}; // Update every 3 seconds
|
|||
|
|
|||
|
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
|
|||
|
|
|||
|
|
|||
|
### 瀏覽器的怪癖
|
|||
|
|
|||
|
隨機生成當前標題的值,以便類比羅盤。
|
|||
|
|
|||
|
### iOS 的怪癖
|
|||
|
|
|||
|
只有一個 `watchHeading` 可以在 iOS 中一次的效果。 如果 `watchHeading` 使用一個篩選器,致電 `getCurrentHeading` 或 `watchHeading` 使用現有的篩選器值來指定標題的變化。 帶有篩選器看標題的變化是與時間間隔比效率更高。
|
|||
|
|
|||
|
### 亞馬遜火 OS 怪癖
|
|||
|
|
|||
|
* `filter`不受支援。
|
|||
|
|
|||
|
### Android 的怪癖
|
|||
|
|
|||
|
* 不支援`filter`.
|
|||
|
|
|||
|
### 火狐瀏覽器作業系統的怪癖
|
|||
|
|
|||
|
* 不支援`filter`.
|
|||
|
|
|||
|
### 泰怪癖
|
|||
|
|
|||
|
* 不支援`filter`.
|
|||
|
|
|||
|
### Windows Phone 7 和 8 的怪癖
|
|||
|
|
|||
|
* 不支援`filter`.
|
|||
|
|
|||
|
## navigator.compass.clearWatch
|
|||
|
|
|||
|
別看手錶 ID 參數所引用的指南針。
|
|||
|
|
|||
|
navigator.compass.clearWatch(watchID);
|
|||
|
|
|||
|
|
|||
|
* **watchID**: 由返回的 ID`navigator.compass.watchHeading`.
|
|||
|
|
|||
|
### 示例
|
|||
|
|
|||
|
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
|
|||
|
|
|||
|
// ... later on ...
|
|||
|
|
|||
|
navigator.compass.clearWatch(watchID);
|
|||
|
|
|||
|
|
|||
|
## CompassHeading
|
|||
|
|
|||
|
`CompassSuccess` 回呼函數返回一個 `CompassHeading` 物件。
|
|||
|
|
|||
|
### 屬性
|
|||
|
|
|||
|
* **magneticHeading**: 在某一時刻在時間中從 0-359.99 度的標題。*(人數)*
|
|||
|
|
|||
|
* **trueHeading**: 在某一時刻的時間與地理北極在 0-359.99 度標題。 負值表示不能確定真正的標題。 *(人數)*
|
|||
|
|
|||
|
* **headingAccuracy**: 中度報告的標題和真正標題之間的偏差。*(人數)*
|
|||
|
|
|||
|
* **timestamp**: 本項決定在其中的時間。*(毫秒)*
|
|||
|
|
|||
|
### 亞馬遜火 OS 怪癖
|
|||
|
|
|||
|
* `trueHeading`不受支援,但報告相同的值`magneticHeading`
|
|||
|
|
|||
|
* `headingAccuracy`是始終為 0 因為有沒有區別 `magneticHeading` 和`trueHeading`
|
|||
|
|
|||
|
### Android 的怪癖
|
|||
|
|
|||
|
* `trueHeading`屬性不受支援,但報告相同的值`magneticHeading`.
|
|||
|
|
|||
|
* `headingAccuracy`屬性始終是 0 因為有沒有區別 `magneticHeading` 和`trueHeading`.
|
|||
|
|
|||
|
### 火狐瀏覽器作業系統的怪癖
|
|||
|
|
|||
|
* `trueHeading`屬性不受支援,但報告相同的值`magneticHeading`.
|
|||
|
|
|||
|
* `headingAccuracy`屬性始終是 0 因為有沒有區別 `magneticHeading` 和`trueHeading`.
|
|||
|
|
|||
|
### iOS 的怪癖
|
|||
|
|
|||
|
* `trueHeading`屬性只返回位置服務通過以下方式啟用`navigator.geolocation.watchLocation()`.
|
|||
|
|
|||
|
* IOS 4 設備及以上,標題中設備的當前方向的因素,也不引用其絕對的位置,用於支援該方向的應用程式。
|
|||
|
|
|||
|
## CompassError
|
|||
|
|
|||
|
當發生錯誤時,`compassError` 回呼函數情況下會返回一個 `CompassError` 物件。
|
|||
|
|
|||
|
### 屬性
|
|||
|
|
|||
|
* **code**: 下面列出的預定義的錯誤代碼之一。
|
|||
|
|
|||
|
### 常量
|
|||
|
|
|||
|
* `CompassError.COMPASS_INTERNAL_ERR`
|
|||
|
* `CompassError.COMPASS_NOT_SUPPORTED`
|