Histórico da Página
...
Bloco de código | ||
---|---|---|
| ||
function getLocationUpdategetLocation(){ if(navigator.geolocation) { // timeout atif 60000 milliseconds (60 seconds(navigator.geolocation) var options = {timeout:60000}; geoLoc = navigator.geolocation.getCurrentPosition(showPosition,showError); watchID = geoLoc.watchPosition(showLocation, } } function showPosition(position) { errorHandler, var latlon=position.coords.latitude+","+position.coords.longitude; var img_url="http://maps.googleapis.com/maps/api/staticmap?center=" +latlon+"&zoom=14&size=300x200&sensor=false"; options); }else{ alert("Sorry, esse dispositivo não suporta geolocalização!"); } } function showLocation(position) { var lat = position.coords.latitude; document.getElementById("map").innerHTML="<img src='"+img_url+"'>"; var lat = position.coords.latitude; var longi = position.coords.longitude; document.getElementById("latitude").value = lat; document.getElementById("longitude").value = longi; } function errorHandlershowError(errerror) { if(err.code == 1 switch(error.code) { alert("Erro: Acesso negado!"); }else if( err.code == 2) { alert("Error: Posição está indisponível!"); } } |
Informações |
---|
Veja o exemplo (form-mobile-waze) em nosso repositório aqui. |
Nota | ||
---|---|---|
| ||
Esta técnica só funciona em ambiente HTTPS a partir do Android 6.0 e iOS 10. |
Formulário único
A partir da atualização 1.5 do fluig os formulários da web e do mobile devem ser criados de forma única. Sendo assim, o formulário deve atender tanto o mobile quanto a web.
Para criar formulários com este novo padrão verifique o fluig Style Guide.
Anexos de formulário
...
{
case error.PERMISSION_DENIED:
doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
break;
case error.POSITION_UNAVAILABLE:
doc.innerHTML="Informações de localização não está disponÃvel."
break;
case error.TIMEOUT:
doc.innerHTML="Solicitação de locatização não retornou em tempo hábil (timeout)."
break;
case error.UNKNOWN_ERROR:
doc.innerHTML="Erro desconhecido."
break;
}
} |
...
Nota | ||
---|---|---|
| ||
No sistema operacional Android não é recomendado carregar anexos do formulário via requisições como XMLHttpRequest. O carregamento do conteúdo de arquivos via caminhos relativos já é suficiente. |
Guia de estilos off-line
Agora é possível utilizar o guia de estilos em modo off-line sem a necessidade de qualquer conexão a internet, ficou bem mais fácil e independente personalizar seu formulário para processo off-line. Uma vez ao dia o fluig Mobile ira verificar novas atualizações, caso alguma atualização esteja disponível, o download da mesma será feita automaticamente de forma rápida e transparente, sem precisar se atentar a formas manuais e demoradas para atualização. O guia de estilos off-line está disponível tanto para Android como para IOS.
Versões mínimas dos browsers suportados
...
Esta técnica só funciona em ambiente HTTPS a partir do Android 6.0 e iOS 10. |
Formulário único
A partir da atualização 1.5 do fluig os formulários da web e do mobile devem ser criados de forma única. Sendo assim, o formulário deve atender tanto o mobile quanto a web.
Para criar formulários com este novo padrão verifique o fluig Style Guide.
Anexos de formulário
- Download de anexos: este procedimento será automático, porém apenas os anexos do formulário são baixados.
- Download de anexos em processos offline: durante o download dos processos offline os anexos do formulário são baixados e estarão disponíveis para utilização de maneira offline.
Nota | ||
---|---|---|
| ||
Para o funcionamento de anexos do formulário, o caminho dos arquivos devem ser relativos e não podem ser externos. |
Nota | ||
---|---|---|
| ||
No sistema operacional Android não é recomendado carregar anexos do formulário via requisições como XMLHttpRequest. O carregamento do conteúdo de arquivos via caminhos relativos já é suficiente. |
Guia de estilos off-line
Agora é possível utilizar o guia de estilos em modo off-line sem a necessidade de qualquer conexão a internet, ficou bem mais fácil e independente personalizar seu formulário para processo off-line. Uma vez ao dia o fluig Mobile ira verificar novas atualizações, caso alguma atualização esteja disponível, o download da mesma será feita automaticamente de forma rápida e transparente, sem precisar se atentar a formas manuais e demoradas para atualização. O guia de estilos off-line está disponível tanto para Android como para IOS.
Versões mínimas dos browsers suportados
Cada uma das plataformas utiliza um browser diferente para a renderização dos formulários. Esta informação deve ser considerada durante o desenvolvimento para evitar problemas de compatibilidade com os arquivos JavaScript/CSS. Acesse a Matriz de Portabilidade e veja a versão mínima dos browsers de cada plataforma que deve ser considerada durante o desenvolvimento.
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
}
function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=300x200&sensor=false";
document.getElementById("map").innerHTML="<img src='"+img_url+"'>";
var lat = position.coords.latitude;
var longi = position.coords.longitude;
document.getElementById("latitude").value = lat;
document.getElementById("longitude").value = longi;
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
break;
case error.POSITION_UNAVAILABLE:
doc.innerHTML="Informações de localização não está disponÃvel."
break;
case error.TIMEOUT:
doc.innerHTML="Solicitação de locatização não retornou em tempo hábil (timeout)."
break;
case error.UNKNOWN_ERROR:
doc.innerHTML="Erro desconhecido."
break;
}
}
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
}
function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=300x200&sensor=false";
document.getElementById("map").innerHTML="<img src='"+img_url+"'>";
var lat = position.coords.latitude;
var longi = position.coords.longitude;
document.getElementById("latitude").value = lat;
document.getElementById("longitude").value = longi;
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
break;
case error.POSITION_UNAVAILABLE:
doc.innerHTML="Informações de localização não está disponÃvel."
break;
case error.TIMEOUT:
doc.innerHTML="Solicitação de locatização não retornou em tempo hábil (timeout)."
break;
case error.UNKNOWN_ERROR:
doc.innerHTML="Erro desconhecido."
break;
}
}
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition,showError);
}
}
function showPosition(position)
{
var latlon=position.coords.latitude+","+position.coords.longitude;
var img_url="http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=300x200&sensor=false";
document.getElementById("map").innerHTML="<img src='"+img_url+"'>";
var lat = position.coords.latitude;
var longi = position.coords.longitude;
document.getElementById("latitude").value = lat;
document.getElementById("longitude").value = longi;
}
function showError(error)
{
switch(error.code)
{
case error.PERMISSION_DENIED:
doc.innerHTML="Pedido de Geolocalização negado pelo usuário."
break;
case error.POSITION_UNAVAILABLE:
doc.innerHTML="Informações de localização não está disponÃvel."
break;
case error.TIMEOUT:
doc.innerHTML="Solicitação de locatização não retornou em tempo hábil (timeout)."
break;
case error.UNKNOWN_ERROR:
doc.innerHTML="Erro desconhecido."
break;
}
}