我们无法使用WebRTC或文件输入从iOS11(公开发布)主屏幕Web应用程序访问相机,详情如下.我们的用户如何继续访问相机?
我们通过https提供网络应用页面.
正如这里的人们所说,Apple docs建议网络应用程序相机功能在11.3与服务工作者一起返回.这很好,但我们还不确定是否我们希望每个人都重新安装,直到我们可以对11.3GM进行彻底测试.
iOS 11.2和iOS 11.1.2无法修复.
似乎我们可以向Web应用程序的现有客户询问
我们当前的生产代码使用的文件输入在iOS 10及更早版本中运行良好多年.在iOS11上,它可用作Safari选项卡,但不能用于主屏幕应用程序.在后一种情况下,相机被打开并且仅显示黑色屏幕,因此它是不可用的.
<meta name="apple-mobile-web-app-capable" content="yes">
...
<input type="file" accept="image/*">
Run Code Online (Sandbox Code Playgroud)
iOS11上的Safari 11提供WebRTC媒体捕获功能,非常棒.
我们可以使用navigator.mediaDevices.getUserMedia根据此处链接的示例代码,在桌面和移动设备上的普通网页上捕捉相机图像到画布.
当我们将页面添加到iPad或iPhone主屏幕时,navigator.mediaDevices变得undefined无法使用.
<meta name="apple-mobile-web-app-capable" content="yes">
...
// for some reason safari on mac can debug ios safari page but not ios home screen web apps
var d = 'typeof navigator : ' + typeof …Run Code Online (Sandbox Code Playgroud) 在iOS8上,这个HTML5网络应用程序在屏幕被锁定后不会恢复js计时器,然后在webapp处于活动状态并从主屏幕图标启动时解锁.在iOS7上,计时器将在这种情况下继续.我需要计时器在屏幕解锁后继续 - 任何提示来实现这一目标?
注意/请首先使用Safari的"添加到主屏幕"通过共享按钮将Web应用程序添加到主屏幕.在Safari中运行页面不会导致上述问题.
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Test</title>
<script>
var tim;
function go() {
tim = window.setInterval(action, 1000);
}
function action() {
document.getElementById('x').innerHTML = new Date().getTime().toString();
}
</script>
</head>
<body onload="go()">
<div id="x"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我们使用了HTML5s navigator.geolocation,发现它在iOS和Android智能手机上非常出色.现在,用户希望在具有外部GPS的笔记本电脑上运行相同的HTML5 Web应用程序.在笔记本电脑上使用Windows 7,我无法想办法将位置分享到HTML5浏览器(试过Safari,FF,IE,Chrome).为了测试,我使用的是GlobalStat BU-353 USB GPS,它可以独立工作,我发现GPSDirect(很酷的免费软件)可以将信号传送到Win7传感器位置服务,但HTML5浏览器仍然看不到GPS.
有人有这个运气吗?
以下测试基本上是〜1000次数学运算,并且在大多数PC和Android浏览器以及iOS 4.x上运行良好.在iOS5 safari(iPhone 4和iPad 2)上,我们得到"JavaScript:错误未定义JavaScript执行超出超时".任何帮助非常感谢谢谢.
/** Converts numeric degrees to radians */
if (typeof (Number.prototype.toRad) === "undefined") {
Number.prototype.toRad = function () {
return this * Math.PI / 180;
}
}
function gc(lat1, lon1, lat2, lon2) {
// returns the distance in km between a pair of latitude and longitudes
var R = 6371; // km
var dLat = (lat2 - lat1).toRad();
var dLon = (lon2 - lon1).toRad();
var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(lat1.toRad()) …Run Code Online (Sandbox Code Playgroud) 我的Javascript Apache Cordova应用程序构建正常,但不会在模拟器或真实设备上进行调试.
我在Visual Studio Javascript控制台中看到一堆消息,但应用程序会立即崩溃并且Javascript控制台变得不可用.
我已经尝试设置断点来暂停不起作用的应用程序.
调试器停止后,如何查看这些Javascript控制台日志?
编辑:这适用于Windows Phone(通用),带有Windows Phone插件,不能在浏览器中调试
javascript visual-studio visual-studio-cordova visual-studio-2015