如何在设备上集成导航器应用程序

时间:2015-05-22 07:13:48

标签: movilizer

当我在Movelet中有地址并希望通过iOS,Android和Windwos手机上的外部应用触发导航时,使用路线规划等导航功能的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

要跳转到另一个应用程序,您需要Movilizer AppJump功能,使用此功能可以打开连接(模块SPI)并使用exec命令触发执行。您或用户仍需要做的是通过按地图应用程序中的“开始”按钮手动启动导航。

对于 Android客户端,您需要使用名为geo的协议。 Geo为您提供了两个机会,您可以输入特定的坐标或输入地址。

特定坐标的使用将如下所示:

'geo:49.483611111111,8.463055555555697?z=18'

如果你不知道坐标,你也可以使用:

'geo:0,0?q=Wilhelm-Varnholt-Allee 1, 68165 Mannheim?z=18'

在您的代码中,它将如下所示:

if(platform == 11)
{
    intentURL = conCat('geo:0,0?q=', destPoint,'?z=18'); 
    conStr = conCat('exec:', intentURL);
}

对于 iOS客户端,URL方案看起来非常相似,但您需要使用指向要打开的应用程序而不是使用地理位置。

'exec:maps://?q=Wilhelm-Varnholt-Allee 1, 68165 Mannheim?z=18'

如果您想使用Google地图,则使用maps://将打开Apple Maps应用,您必须使用comgooglemaps://

我准备了一个小例子,这可以帮助你解决你遇到的问题:

<question key="#1" type="6" title="Address">
<answer key="#1_0" nextQuestionKey="END" dummyAnswer="true"/>
<onEnterAssignment>

addresses = 
{
    'Diakoniekrankenhaus Mannheim' : 'Speyerer Str. 91, 68163 Mannheim';
    'Moll-Gymnasium' : 'Feldbergstraße 16, 68163 Mannheim';
    'Planetarium Mannheim' : 'Wilhelm-Varnholt-Allee 1, 68165 Mannheim';
    'Karl Benz Stadion' : 'Theodor-Heuss-Anlage 20, 68165 Mannheim';
    'Luisenpark' : 'Theodor-Heuss-Anlage 2, 68165 Mannheim';
    'Mannheim City Airport':'Seckenheimer Landstr.172, 68163 Mannheim';
};

for(dest:addresses)
{
    addAnswer($answer:'#1_0', dest, dest);
}

platform = getClientType();
</onEnterAssignment>  
<onLeaveOkPersistAssignment>
destPoint = addresses[getQuestionValue()];
if(platform == 11)
{
    intentURL = conCat('geo:0,0?q=', destPoint,'?z=18'); 
    conStr = conCat('exec:', intentURL);
}
else
{
    conStr = conCat('exec:maps://?q=', destPoint, '?z=18');

}

conID = connect(conStr, null);

if(isConnectionOpen(conID))
{
    close(conID);
}
</onLeaveOkPersistAssignment>

答案 1 :(得分:1)

我还在Android上找到了另一种方式:

addressTxt = "Wenceslas Square, Prague, CZ";
connStr    = concat("exec://", "%com.google.android.apps.maps%", "http://maps.google.com/maps?daddr=", addressTxt);
connection = connect(connStr, "name");
try
{
    close(connection);
}
catch (exception)
{
}

Result on YouTube

答案 2 :(得分:1)

对于Android上的导航,以下内容适用于我。

intentURL = '%com.google.android.apps.maps%google.navigation:q=Address';
conID = connect(concat('exec:', intentURL), "name");
if (conID ?ge 0) 
{
     close(conID);
}

Address could be: RMZ Eco World Rd, Adarsh Palm Retreat Villas, Bellandur, Bengaluru, Karnataka 560103, India