是否有任何信息可以收到'标题' Apple Watch?
我想显示用户需要去的箭头,相对于他当前持有手表的方式。在iPhone上,您可以使用CLLocationManager标题执行此操作,但我不确定这是否适用于Apple Watch(我不需要iPhone标题;)
有关于此的任何文件,您可以将我链接到?
答案 0 :(得分:2)
Apple手表中没有指南针......你可以根据iPhone的指南针猜测基于连续GPS位置的标题(GPS也在iphone上运行......)可能不适合!
答案 1 :(得分:1)
您现在可以通过使用Core Location中的“ magneticHeading”或“ trueHeading”(Apple Watch Serie 5 +,watchOS 6.0 +)
这是一个基本示例:
<!DOCTYPE html>
<html>
<head>
<link rel ="stylesheet" type="text/css" href="456.css">
<meta charest ="utf-8">
<title>error-msg will not display correctly at the same time</title>
<script>
function validation(thisForm) {
//validation of fName
if(!thisForm.fname.value.length)
{
document.getElementById('fname-error').style.display="block";
}
else
{
document.getElementById('fname-error').style.display="none";
}
//validation of lName
if(!thisForm.lname.value.length) //if there is no input to lName
{
document.getElementById('lname-error').style.display="block";
}
else
{
document.getElementById('lname-error').style.display="none";
}
if(!thisForm.fname.value.length || !thisForm.lname.value.length)
{
return false
}
return true;
}
</script>
<style>
.error-msg {
display: none;
color:red;
border: 1px solid;
width: 120px;
margin-left: 10px;
}
</style>
</head>
<body>
<form action="#" onSubmit="return validation(this);">
<fieldset>
<legend>Application Name</legend>
<div class="name">
<label for="fname">First Name</label>
<input type="text" id="fname" name="fname">
<span class="error-msg" id="fname-error">First name is required</span>
</div>
<div class="name">
<label for="lname">Last Name </label>
<input type="text" id="lname" name="lname" size="50">
<span class="error-msg" id="lname-error">Last name is required</span>
</div>
</fieldset>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>
然后,当您需要标题值时:
import CoreLocation
class yourClass {
let locationManager = CLLocationManager()
init() {
setupCoreLocation()
}
func setupCoreLocation() {
guard CLLocationManager.headingAvailable() else { return }
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
// additional setup available if needed
}
}
extension yourClass: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
let magneticHeading = newHeading.magneticHeading
let trueHeading = newHeading.trueHeading
// Do something with the new heading values
}
}
当您不再需要它们时,您可以这样做:
locationManager.startUpdatingHeading()
以下是所有Apple的官方文档:
Heading and Course Information basic knowledge
别忘了先检查“标题”是否可用:headingAvailable()
答案 2 :(得分:0)
由于WatchKit无法访问Apple Watch的硬件(手表中没有磁力计,无论如何),您正在处理手机的标题。
因此,在静止不动的情况下获得准确的航向目前是不可行的。但是,如果您首先需要进行一些移动,则可以从几个记录的位置坐标计算方位。 this question(iOS)或this one(一般数学)的答案可能对您有用。