navigator.permissions.query
Permissions APIクエリの代わりにgeolocation
権限を確認する方法はありますか?まだドラフト段階にあり、ブラウザの互換性が低くなっています。
W3CパーミッションRef:https://www.w3.org/TR/権限/
問題はapp resume
で、ユーザーがネイティブ権限ポップアップでアクションを実行すると、ユーザーが取得しているaction
を確認する必要がありました。
位置許可アラートのハイブリッドCordovaアプリコールバック
プラットフォーム:モバイルAndroid
[〜#〜]注[〜#〜]:使用したくないcordova diagnostic plugin
例:
navigator.permissions.query({name:'geolocation'}).then(function(result) {
console.log('result : ', result);
});
そうは思いません。
現時点では、navigator.permissionsオブジェクトは定義されていません。Web権限とAndroid権限を混在させないようにする目的で、おそらくWebViewで削除されています。
オプション1:
Cordova診断プラグイン を試してみてください。具体的には、Permissions APIと非常によく似た方法でアクセス許可の状態を返すgetLocationAuthorizationStatus
メソッドです。プラグインを試していないことに注意してください。
オプション2:
場所をリクエストして、場所の権限ダイアログをトリガーします。 PositionError とPERMISSION_DENIED
定数コード。これは、ユーザーが位置情報の許可を拒否したことを意味します(今、またはアプリの設定で)。
navigator.getCurrentPosition(
function(position) { /** won't be executed for such short timeout */ },
function(positionError) {
switch (positionError.code) {
// PERMISSION_DENIED
case 1:
console.log('Permission denied')
break
// POSITION_UNAVAILABLE
case 2:
console.log('Permission allowed, location disabled')
break
// TIMEOUT
case 3:
console.log('Permission allowed, timeout reached')
break
}
},
{timeout: 0}
)