- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 iOS 13+ 的 WKWebView
中使用 DeviceMotion
和 DeviceOrientation
事件。我正在使用下面的代码
<html>
<style>
#container{
margin: 20px;
padding: 20px
}
#deviceType{
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: 3rem;
font-weight: bold;
color: #08f
}
#permission{
padding: 2rem 5rem;
background: #08f;
color: white;
margin-top: 30;
font-family: Arial, Helvetica, sans-serif;
font-size: 3rem;
border: none;
border-radius: 1rem
}
#permissionStatus{
text-align: center;
font-family: Arial, Helvetica, sans-serif;
font-size: 2.5rem;
font-weight: 600;
color: red;
margin-top: 30px
}
</style>
<body>
<div id="container">
<div id="deviceType"></div>
<div style="text-align: center">
<button id="permission">Ask for permission</button>
</div>
<div id="permissionStatus">Pending</div>
</div>
</body>
<script>
if (typeof DeviceMotionEvent.requestPermission === 'function') {
document.getElementById('deviceType').innerText = 'iOS 13'
document.getElementById('permission').addEventListener('click', function () {
console.log('button clicked')
DeviceMotionEvent.requestPermission().then(response => {
// This is showing "denied" without showing any permission popup
console.log(response)
document.getElementById('permissionStatus').innerText = response
}).catch(console.error)
});
} else {
// ignore this case for processing
console.log('non iOS 13')
document.getElementById('deviceType').innerText = 'non iOS 13'
}
</script>
</html>
此网页在 safari 和 chrome 中均有效,并请求使用设备 Action 的许可,如下所示
图片:
状态将根据我单击“允许”或“取消”进行更新
但在我的应用程序中,我正在使用 WKWebView
并且当我按下 Ask Permission 按钮时,它没有显示任何请求许可的警报,而是直接将状态设置为拒绝。 (如下所示)。
如果我做错了什么或 WKWebView
方面需要任何额外的东西,请指导我。这是我的 iOS WKWebView
代码。我不知道是否需要更改 WKUserContentController
或 WKWebViewConfiguration
。
self.webView = WKWebView(frame: .zero)
self.webView.translatesAutoresizingMaskIntoConstraints = false
// Add the webview as a subview of MTKView
self.view.addSubview(self.webView)
self.webView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor).isActive = true
self.webView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
self.webView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor).isActive = true
self.webView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
let websiteDataTypes = NSSet(array: [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache])
let date = Date(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes as! Set<String>, modifiedSince: date, completionHandler:{ })
self?.webView.load(URLRequest(url: URL(string: url)!))
最佳答案
我尝试使用 uiDelegate
并且成功了
刚刚在 viewDidLoad
里面加了一行
webView.uiDelegate = self
此外,您还必须确认 ViewController
的类型到 WKUIDelegate
。就是这样
关于ios - WKWebView iOS 13 中的 DeviceMotion 和 DeviceOrientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58969959/
请使用手机运行https://developer.mozilla.org/en-US/docs/Web/API/Detecting_device_orientation的demo 我发现一个奇怪的问题
如果我有一个简单的网页和如下所示的脚本: a b g window.addEventListener('deviceorientation', function(even
我正在尝试添加mobile device orientation events在一个 Threejs Web 项目中,但我很困惑如何获得正确的调试循环来测试桌面上的运动控制。即使只是一些控制台记录方向
我有一个 HTML5 指南针,工作得很好。现在我需要一种聪明的方法来区分“启用伪设备方向”的浏览器(如桌面 chrome 和 FF)和使用设备磁力计的 iPhone/Android/iPad 浏览器等
在CGImagePropertyOrientation , When the user captures a photo while holding the device in portrait or
我在 Three.js 中有一个带有 webgl 360 全景图的项目。我在支持 deviceorientation 和 webgl 的浏览器中显示全景图,而在不支持它们的浏览器中仅显示静态图像。但我
我正在尝试平滑从 deviceOrientation API 获取的数据,以便在浏览器中创建 Google Cardboard 应用程序。 我正在将加速度计数据直接传输到 ThreeJs 相机旋转中,
我在 AppDelegate 中创建了一个 View ,我像这样添加到窗口中: [window addSubview:myView];我希望每次返回此 View 时都能检查设备方向,因此我可以对其进行
当我旋转屏幕时,它会随着屏幕一起旋转相机,所以我得到倒置相机屏幕。 return new AspectRatio( aspectRatio: controller.value.aspectRa
正如我的标题所暗示的,Input.deviceOrientation 与 Screen.orientation 之间有什么区别。 什么时候使用它们? 最佳答案 免责声明:我没有测试我的理论,但阅读了手
我正在使用 UITableView 和 UITableViewCell。我的应用程序支持横向方向,因此我创建了 2 个 UITableViewCell:一个用于纵向,一个用于横向。 在我的 cellF
在 Firefox 60 控制台中运行以下代码时,会出现警告消息: "Use of the orientation sensor is deprecated." window.addEventList
我有一个 Cordova 应用程序,我正在为 iOS 和 Android 构建它。我正在使用 HTML5 DeviceOrientation API ( https://w3c.github.io/d
即使浏览器或选项卡未处于焦点状态,是否也可以获得deviceorientation?例如,我知道 setInterval 在后台工作,但 deviceorientation 事件似乎停止触发。 我想在
对于智能手机的增强现实网络应用程序,当用户将设备拿在手中时,我会尝试计算罗盘航向,屏幕处于垂直平面且屏幕顶部朝上。 我从 http://dev.w3.org/geo/api/spec-source-o
自固件版本 XE7 起,Google Glass 中内置的网络浏览器提供 DeviceOreientation events ,但这些值似乎并非来自预期的引用系。如何从中获得正确的罗盘航向? Glas
我一直在为 my project 使用“deviceorientation”在 iPhone/iPad 上测试时,它在横向模式下表现正常,但在纵向模式下表现不规则。 以下是重复的步骤: 打开这个JSF
是否可以使用 devicemotion/deviceorientation HTML5 API 以某种方式计算以 km/h 为单位的设备速度? 我想知道用户是在走路/运行还是不动,我不能使用地理定位
我想在 iOS 13+ 的 WKWebView 中使用 DeviceMotion 和 DeviceOrientation 事件。我正在使用下面的代码 #container{
有没有办法只请求一次 DeviceMotion 和 DeviceOrientation 权限,而不是每次应用启动时。我正在使用 请求权限 webView.evaluateJavaScript("Dev
我是一名优秀的程序员,十分优秀!