Google apps script 地理定位不使用HtmlService
我创建了以下两个文件: 代码.gsGoogle apps script 地理定位不使用HtmlService,google-apps-script,Google Apps Script,我创建了以下两个文件: 代码.gs function doGet() { var html = HtmlService.createHtmlOutputFromFile('html.html'); return html; } html.html <html> <body> <p id="messaging">Click the button to get your coordinates:</p> <button onclick=
function doGet() {
var html = HtmlService.createHtmlOutputFromFile('html.html');
return html;
}
html.html
<html>
<body>
<p id="messaging">Click the button to get your coordinates:</p>
<button onclick="getLocation()">Where am I</button>
<script>
var message=document.getElementById("messaging");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
message.innerHTML="Geolocation is not supported.";
}
}
function showPosition(position) {
message.innerHTML="Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude;
}
</script>
</body>
</html>
单击按钮获取您的坐标:
我在哪里
var message=document.getElementById(“消息传递”);
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition);
}否则{
message.innerHTML=“不支持地理位置。”;
}
}
功能显示位置(位置){
message.innerHTML=“Latitude:”+position.coords.Latitude+“
经度:”+position.coords.Longitude;
}
当我调用发布的URL时,我得到了预期的消息和按钮。单击按钮,我会收到失败消息“不支持地理位置”。如果我将html.html保存在一个文件中并在浏览器中打开它,它将按预期工作
有什么想法吗?我相信,卡贾是罪魁祸首。您可以运行您的代码来检查行为是否相同吗。如果相同,您可以在中打开一个问题 要了解更多Caja对HtmlService的作用,您可以参考以下内容 更新
上述答案已过时。现在可以使用浏览器中的navigator.geolocation对象访问位置。我相信,Caja是罪魁祸首。您可以运行您的代码来检查行为是否相同吗。如果相同,您可以在中打开一个问题 要了解更多Caja对HtmlService的作用,您可以参考以下内容 更新
上述答案已过时。现在,您可以使用浏览器中的navigator.geolocation对象访问位置。geolocation在HtmlService中尚不可用geolocation在HtmlService中尚不可用我刚刚尝试了您的代码,因为我想在Google站点中使用Google Apps脚本做些事情 目前看来,HTMLService仍然不支持地理定位,但我发现了一种可能的解决方法,可以满足我的特定需求(即与谷歌网站结合使用),这也可以帮助其他人: 工作原理是创建一个定制的“谷歌网站小工具” 使用来自的示例代码 我最终为我的小工具创建了一个“骨架”XML文件,如下所示:
功能显示位置(位置){
变量纬度=位置坐标纬度;
var经度=position.coords.longitude;
警报(“纬度:+纬度+”经度:+经度);
}
函数errorHandler(err){
如果(err.code==1){
警报(“错误:访问被拒绝!”);
}else if(err.code==2){
警报(“错误:位置不可用!”);
}
}
函数getLocation(){
if(导航器.地理位置){
//60000毫秒(60秒)时超时
var选项={timeout:60000};
navigator.geolocation.getCurrentPosition(showLocation,
错误处理程序,
选择权);
}否则{
警报(“对不起,浏览器不支持地理位置!”);
}
}
]]>
我刚刚尝试了你的代码,因为我想在谷歌网站上用谷歌应用程序脚本做点什么
目前看来,HTMLService仍然不支持地理定位,但我发现了一种可能的解决方法,可以满足我的特定需求(即与谷歌网站结合使用),这也可以帮助其他人:
工作原理是创建一个定制的“谷歌网站小工具”
使用来自的示例代码
我最终为我的小工具创建了一个“骨架”XML文件,如下所示:
功能显示位置(位置){
变量纬度=位置坐标纬度;
var经度=position.coords.longitude;
警报(“纬度:+纬度+”经度:+经度);
}
函数errorHandler(err){
如果(err.code==1){
警报(“错误:访问被拒绝!”);
}else if(err.code==2){
警报(“错误:位置不可用!”);
}
}
函数getLocation(){
if(导航器.地理位置){
//60000毫秒(60秒)时超时
var选项={timeout:60000};
navigator.geolocation.getCurrentPosition(showLocation,
错误处理程序,
选择权);
}否则{
警报(“对不起,浏览器不支持地理位置!”);
}
}
]]>
自2016年起,地理定位在IFRAME模式下与HtmlService一起工作。在这里测试它:
使用Chrome和Firefox(桌面)进行测试,都可以。不适用于Safari(桌面)(共享位置确认框不会弹出。我讨厌Safari!)
有趣的是,它与iOS 9上的Safari兼容,但与iOS 9上的最新Chrome不兼容。(同一问题,无确认弹出窗口)自2016年起,地理定位在IFRAME模式下与HtmlService一起工作。在这里测试它: 使用Chrome和Firefox(桌面)进行测试,都可以。不适用于Safari(桌面)(共享位置确认框不会弹出。我讨厌Safari!)
有趣的是,它与iOS 9上的Safari兼容,但与iOS 9上的最新Chrome不兼容。(同一问题,没有确认弹出窗口)谢谢Corey。PS你知道我关注的是“尚未”。:-)没有承诺,但我们正在尝试添加自原始请求以来的任何更新?知道HtmlService是否/何时提供it地理定位服务吗?谢谢Corey。PS你知道我关注的是“尚未”。:-)没有承诺,但我们正在尝试添加自原始请求以来的任何更新?你知道HtmlService中是否/何时会提供it地理定位吗?显然这不是Caja问题:显然这不是Caja问题:酷。谢谢,我会查的。酷。谢谢,我会查出来的。@sdx11不能做什么?我刚刚测试过它,它工作正常。您使用的是什么系统?@sdx11系统规格是什么-操作系统和浏览器。@sdx11无法执行什么操作?我刚刚测试过它,它工作正常。您使用的是什么系统?@sdx11系统规格是什么-操作系统和浏览器。