2013-08-09 30 views
10

Merhaba Uygulamanın yerel harita uygulamasını bir telefon hafızası sarılmış javascript uygulamasından açmanın bir yolunu arıyorum.Boylam ve enlem koordinatlarına güvenmeden javascript'ten yerel harita uygulamasını açma

benim reaserch Android için bu formatta bir bağlantı kullanmak zorunda olacağını ortaya Şimdiye kadar: Ben boylam ve Lattitude içine adresini dönüştürmek için harici bir hizmeti kullanmak zorunda olacak çünkü

<a href="geo:38.897096,-77.036545">Geolocation Test</a> 

Bu problemlidir Koordinatlar, mümkünse kaçınmak istediğim bir şey.

<a href="maps:q=Bacau">Test 2</a> 

Ve yerli harita uygulamasıdır olsun en oppened: Bu simpler.I sürü olduğunu iOS durumunda

sadece bunu bir bu biçimde bağlantıyı vermek zorunda.

iOS'taki gibi, Android'in belirli bir biçimde bir adresle düz bir bağlantı vermesi ve aygıtın yerel harita uygulamasını açmayı bilmesi için herhangi bir yolu var mı?

cevap

10

Cordova 3.6.0 URL'ler dışı uygulamaları başlatmak için izin verilen kısıtlamasına, ikinci beyaz listeyi tanıtır. Cordova'nın önceki sürümlerinde, mailto :, geo :, sms: ve intent gibi tüm http olmayan URL'ler, bir etiketin hedefi olarak gizli olarak izinliydi. Bir uygulamanın bilgi sızdırması olasılığı nedeniyle, bir XSS güvenlik açığı saldırganın rasgele bağlantılar oluşturmasına izin veriyorsa, bu URL'lerin Cordova 3.6.0'dan başlayarak da beyaz listeye alınması gerekir.

Cordova 3.6.0 Whitelist Guide

Yani config.xml'de açıkça eklemeniz gerekir:

<access origin="tel:*" launch-external="yes" /> 
    <access origin="mailto:*" launch-external="yes" /> 
14

Android intents list görüntülendiğinde, geo: URI alanında q parametresini kullanarak mümkün olmalıdır.

bu deneyin:

<a href="geo:0,0?q=Bacau">Test</a> 
İlgili konular