rails - rubymotion tutorial
La geolocalización de Rubymotion/bubblewrap en modo avión hace que se cuelgue la aplicación (1)
Intentando obtener una implementación geoloc limpia en alguna aplicación; bastante luchando con las limitaciones de lo que bubblewrap proporciona para ubicaciones
def get_location
begin
BW::Location.get_once do |location|
if location
self.latitude = location.latitude
self.longitude = location.longitude
end
end
rescue
puts "can''t geoloc"
end
end
Con este código (lo siento, pero muestro las ''pruebas'' que -espero- funcionarían como reembolsos con el código Ruby), me da un accidente de aplicación simple si configuro el modo avión en el teléfono
Gracias si hay alguna experiencia para hacerlo funcionar en este modo
Creo que las cosas de geolocalización se ejecutan en un hilo separado, por lo que querría poner su código de inicio / rescate dentro del bloque:
BW::Location.get_once do |location|
begin
if location
self.latitude = location.latitude
self.longitude = location.longitude
end
rescue
puts "can''t geoloc"
end
end
Sin embargo, Bubblewrap realmente le informará si hubo un error al establecer la location
en un hash con un valor, {error: type}
. Dado que está utilizando get_once
, el valor de retorno podría ser un objeto Hash
o CLLocation
, por lo que debe verificar el tipo de objeto para evitar un error:
BW::Location.get_once do |location|
if location.is_a?(Hash) && location[:error]
puts "can''t geoloc"
else
self.latitude = location.latitude
self.longitude = location.longitude
end
end