2013-06-21 38 views
5

Google Maps API v3'ü kullanan jQuery + Phonegap ile bir mobil web uygulaması geliştiriyorum ve haritaya eklenen bağlantılarla ilgili bazı sorunlar yaşıyorum.Açılır pencerede Google Maps bağlantıları nasıl açılır?

Sorum, Apple'ınki gibi fiziksel düğmeler olmayan cihazlarda takılmayı önlemek için Şartlar ve Koşullar ile Google Haritalar bağlantılarını aynı pencerede açmak yerine açılır bir pencerede açmanın mümkün olup olmadığıdır. Harita kanvasının alt öğelerine bir 'tıklama' olayı eklemeyi ve bunların hedefini değiştirmeyi denedim, ancak bunu gerçekleştiremedim. Bir çözüm var mı?

Teşekkürler. bu bağlantıların

cevap

0

ÇÖZÜLDÜ! Bu cevapta bir çözüm buldum: https://stackoverflow.com/a/16575541/2507996. Click olayını yakalayan bağlantı davranışını değiştirir ve PhoneGap/Cordova InAppBrowser ile yeni pencereler açar. Cevaplarınız için teşekkürler.

3

Hem onlara target="_blank" var, bu yüzden normalde onlar otomatik olarak yeni bir pencerede açılmalıdır.

<a target="_blank" 
    href="http://maps.google.com/maps?..." 
    title="Click to see this area on Google Maps" 
    style="position: static; overflow: visible; float: none; display: inline;" 
> 
    <div ...> 
     <img ...> 
    </div> 
</a> 

Ama açıklamada belirtildiği gibi PhoneGap o tutumu aşırı görülmektedir.Bütün: Örneğin, Google Maps bağlantısı buna benzemez. Konuyla ilgili biraz bulacaksınız

phonegap target _blank 

this discussion ve this issue özellikle: için Aslında sen ararsanız.

Kullanıcıların PhoneGap'ın InAppBrowser kullanmasını istedikleri görünüyor, ancak özellikle window.open() işlevine bağlı görünüyor. Yani basit bir URL yerine bir window.open() aramayı kullanmak için şu <a> öğelerinde href değiştirmeyi deneyebilirsiniz. Eğer link adında bir değişkende olanlar <a> elemanların birine bir başvuru ele verdik Örneğin

, sen deneyebilirsiniz: değiştirir

link.href = 
    "javascript:window.open('" + 
     link.href + 
    "', '_blank', 'location=yes');"; 

href den:

http://google.com/etc.etc. 

(aslında tüm bir satırda, okunabilirlik için buraya biçimlendirilmiş) için:

javascript:window.open(
    'http://google.com/etc.etc.', 
    '_blank', 
    'location=yes' 
); 

Bir diğer olasılık <a> etiketi ve MainViewController bir değişiklik üzerinde rel="external" kullanarak this answer yılında tekniği olabilir. Ancak bu kullanımdan kaldırılır ve DOM öğeleriyle benzer miktarda iş yapmayı gerektirir.

Bir diğer düşünce ... Normalde, bu haritalar ve ToS bağlantıları iç işleyişini ile ilgilenmek hizmet şartlarını ihlal olarak kabul edilebilir. Bununla birlikte, burada bu bağlantıların asıl amacını, düzgün bir şekilde çalışmasını engelleyen bir PhoneGap sorunu karşısında korunduğunuzu kolayca tartışabileceğinizi düşünüyorum.

+0

Cevabınız için teşekkürler. Bunu fark ettim, ancak konu web sayfası Phonegap kullanarak yerel bir uygulama olarak paketlendiğinden, gerçek bir yerel uygulamayı simüle etmek için tüm sayfalar aynı pencerede açılır. Bu yüzden onu bir açılır pencerede açmak istiyorum. – alvarofd

0

yeni bir sekmede açmak senin window.location bu deneyin:

i.e: <a href="#" onclick="window.open('stackoverflow.com')">New Map(In new window)</a> 
0

ChildBrowser eklentisi kullanarak deneyin. Musluğu yakalamak ve ChildBrowser'da açmak için bazı JavaScript hileleri yapmanız gerekebilir. PhoneGap tarafından sağlanan

İlgili konular