2013-08-22 35 views
2

我需要找到一种方法,在黑莓10 我的web应用程序是纯普通浏览器,工作从打开浏览器原生地图应用程序,而无需使用的WebWorks原生地图应用在BlackBerry 10

我想它必须是一个URI方案,应该提供一个简单的方法来执行此操作。 我已经为iOS,Android和WP8做了这个。但黑莓10设备给我一个真正的痛苦。

同样,我的网络应用程序在BB10设备上的浏览器中工作。

回答

1

我现在有一个类似的问题,我可以打开本机应用程序,但它总是会显示在当前位置,并且不会有不同位置的指针(我无法将任何参数传递到地图),但要打开地图,只需使用

var url =“maps:any address”; //地址不会有所作为 ,因为我无法传递参数。window.open(url);

(黑莓Z10测试)

+0

谢谢@invisible520,我已经在Z10设备上试过这个uri方案,是的,地图ap p打开,但是,我也没有设法在那里传递经纬度参数... – kio21

-1

尝试这些URI:

地理:-34.6033,-58.3817(布宜诺斯艾利斯,阿根廷)

地理:52.5167,13.3833 (德国柏林)

在浏览器中为我工作。

0

看起来像没有webworks那样工作。 刚刚尝试了geo:URI,但它们不适用于应用程序。 在BB浏览器中,它们工作正常,但不在应用程序中。

1

由于最近有关于BlackBerry的文档如何做到这一点。

'延伸杆descriptor.xml' 文件具有所需urischeme:

<invoke-target id="com.mycompany.myapplication"> 
<type>APPLICATION</type> 

<filter> 
    <action>bb.action.VIEW</action> 
    <mime-type>*</mime-type> 
    <property var="uris" value="activetext:"/> 
</filter> 

<invoke-target-pattern>  
    <pattern-value type="uri">activetext:</pattern-value>  
</invoke-target-pattern> 

之后,在应用程序代码(从黑莓文档):

// File: service.cpp 
#include "service.hpp" 

#include <bb/Application> 
#include <bb/platform/Notification> 
#include <bb/platform/NotificationDefaultApplicationSettings> 
#include <bb/system/InvokeManager> 

using namespace bb::platform; 
using namespace bb::system; 

Service::Service() : 
     QObject(), 
     m_notify(new Notification(this)), 
     m_invokeManager(new InvokeManager(this)) 
{ 
    // Whenever the app is invoked, call handleInvoke() 
    m_invokeManager->connect(m_invokeManager, 
     SIGNAL(invoked(const bb::system::InvokeRequest&)), 
     this, 
     SLOT(handleInvoke(const bb::system::InvokeRequest&))); 

    // Configure app to allow notifications 
    NotificationDefaultApplicationSettings settings; 
    settings.setPreview(NotificationPriorityPolicy::Allow); 
    settings.apply(); 

    // Set a common notification title 
    m_notify->setTitle("Headless service"); 
} 

void Service::handleInvoke(
        const bb::system::InvokeRequest & request) 
{ 
    // Check if timer trigger invoked the app 
    if (request.action().compare("bb.action.VIEW") 
           == 0) { 
     m_notify->setBody("Timer alert!"); 
     Notification::clearEffectsForAll(); 
     Notification::deleteAllFromInbox(); 
     m_notify->notify(); 
     // Do necessary handling here. 
     qDebug() << request.uri(); 

    } 
} 

BlackBerry Documentation