2013-08-22 68 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