2015-12-23 46 views
3

我正在開發使用科爾多瓦混合應用&離子。起初我爲Android開發。我的應用程序包含geo:tel:鏈接。在Android上,一切正常。 geo:鏈接將打開Goog​​le Map或Waze,並且tel:鏈接將打開電話。科爾多瓦iOS不從地理鏈接打開地圖

但是,在iOS上,tel:鏈接仍然有效,但geo:鏈接不起作用。當我點擊它時,什麼都沒有發生。當我看看Xcode,它說:Failed to load webpage with error: The URL can’t be shown

我該如何解決它?

+0

有iOS上沒有地理URL方案,谷歌地圖的網站網址應打開谷歌地圖應用程序,而蘋果地圖的網站網址或地圖://方案應該打開蘋果的地圖app – jcesarmobile

+0

@jcesarmobile感謝您的評論。所以,我只需要將'geo:'替換爲'maps://'就可以了。 – user1995781

+0

@jcesarmobile用'maps:'試過,也行不通....你能舉出一些例子來更好的理解嗎?謝謝。 – user1995781

回答

0

在iOS上,你需要使用 「地圖:」

在Android上,您可以使用 「地理」 或 「http://maps.google.com/maps

在這兩種情況下,你可能需要的inappbrowser pluing

var url = "http://maps.google.com/maps"; 
if (device.platform.toLowerCase() == "ios") { 
    url = "maps:" 
} 
url + "?q=1.5149818510303,110.35436153412"; 

然後添加地圖鏈接target="_system",這表示通過inappbrowser插件可以在外部打開它。

<a href="{{ url }}" target="_system">map link</a> 
0

我已經寫了一個方法,取代所有不同於android的設備上的所有geo:href。在android中,geo:標籤比直接打開Goog​​le地圖更好,因爲它的啓動功能可以打開Waze,Uber,Google地圖和其他地圖應用程序。

隨着科爾多瓦設備插件運行:

if(device.platform.toLowerCase != 'android'){ 
    $('a').each(function(i,el){ 
     if($(el).attr('href').indexOf("geo:") == 0){ 
      $(el).attr(
       'href', 
       $(el).attr('href').replace(
        'geo:', 
        'http://maps.google.com/maps?q=' 
       ) 
      ); 
     } 
    }); 
}