爱奥尼亚Cordova iOS 13陀螺仪/设备定向问题

爱奥尼亚Cordova iOS 13陀螺仪/设备定向问题,cordova,ionic-framework,orientation,device,gyroscope,Cordova,Ionic Framework,Orientation,Device,Gyroscope,召唤 window.addEventListener("deviceorientation", function (event) { console.log(event); }); 如果在调用之前没有获得“DeviceOrientationEvent.requestPermission()”,它将不再工作,这是一个新的w3c实现,但不适用于ionic Cordova(?) 有什么想法吗?我自己回答: 这只是基本的,没有提示iOS对话框允许再次包含权限的句柄。若用户曾决定“不允许”陀螺

召唤

window.addEventListener("deviceorientation", function (event) {
   console.log(event);  
});
如果在调用之前没有获得“DeviceOrientationEvent.requestPermission()”,它将不再工作,这是一个新的w3c实现,但不适用于ionic Cordova(?)

有什么想法吗?

我自己回答:

这只是基本的,没有提示iOS对话框允许再次包含权限的句柄。若用户曾决定“不允许”陀螺仪,则无需处理

现在在typescript中,不可能调用JS函数requestPermission(),因此您可以简单地将JS文件包含在

var requestOrientationPermit = function() {
  DeviceOrientationEvent.requestPermission();
}
然后在ts文件中

declare var requestOrientationPermit : any;
// ...

// (in some typescript onclick event! call:)
requestOrientationPermit();

// ...
// later...
window.addEventListener("deviceorientation", function (event) {
  console.log(event);  

})

你可以试着使用来自爱奥尼亚的屏幕定向插件:hi@maxxx,你能告诉我你是如何包含js文件的吗?这是一个角度项目。将JS代码放在index.html中或包含一个JS文件。但更好的解决方案是在爱奥尼亚上使用本机陀螺仪cordova插件。它不要求您为定向设备授予权限。由于ios 13。。。这就是为什么我要从'@ionic native/陀螺仪/ngx'中搜索fiximport{陀螺仪,陀螺仪方向,陀螺仪选项}。。。私人陀螺仪:陀螺仪。。。this.陀螺仪.getCurrent(选项)。然后((方向:陀螺仪方向)=>{var事件={alpha:orientation.x,beta:orientation.y,gamma:orientation.z,}…在iOS>13中仍然有效陀螺仪似乎可以工作,但DeviceMotion no。