簡體   English   中英

Android平台上的QWebView HTML5 GeoLocation

[英]QWebView HTML5 GeoLocation on Android platform

嘗試使用Necessitas的QWebView端口查看HTML5網頁中的GPS坐標。 但是它總是響應不支持。

function load( )
{
   if ( navigator.geolocation )
   {
      alert( "Supported." );
   }
   else
   {
      alert( "Not Supported!" );
   }
}

我已經改變了QWebPage以允許權限:

BrowserWebPage::BrowserWebPage( QObject* parent ) : QWebPage( parent )
{
    connect( this,
             SIGNAL( featurePermissionRequested( QWebFrame*, QWebPage::Feature ) ),
             SLOT( permissionRequested( QWebFrame*, QWebPage::Feature ) ) );
}

void BrowserWebPage::permissionRequested( QWebFrame* frame, QWebPage::Feature feature )
{
    if ( feature == Geolocation )
    {
        setFeaturePermission( frame, feature, PermissionGrantedByUser );
    }
    else //denied
    {
        setFeaturePermission( frame, feature, PermissionDeniedByUser );
    }
}

並設置以下權限:

android.permission.INTERNET對

android.permission.ACCESS_FINE_LOCATION

android.permission.ACCESS_COARSE_LOCATION

編輯

根據此頁面,GeoLocation API存在於QtWebKit構建中。

http://trac.webkit.org/wiki/QtWebKitFeatures22

細節

電話:Galaxy Nexus

平台:Android 4.1.1(SDK 14)

框架:Qt 4.8.0 for Android armv7a

我認為你必須設置粗略的位置和互聯網權限,因為精確的位置僅用於gps,如果我正確的話。 在任何情況下,如果gps不可用,兩者都是正當理由,將使用您的互聯網連接上的位置。

   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
   <uses-permission android:name="android.permission.INTERNET" /> 

我沒有真正的qtwebkit經驗,但這是我可以告訴你的基礎知識。

我只是嘗試了一些非常相似的東西,無法使navigator.geolocation工作,所以我實現了一個自己的地理位置類並將其添加到框架中。

mygeolocation對象實現了一個信號和一個槽

signal:
void updatepos(float lon, float lat); // called from get location when location is found

slot:
void getlocation(); // gets location and calls updatepos

頁面加載后:

frame->addToJavaScriptWindowObject(QString("geo"), geo);
frame->evaluateJavaScript("init()");

geo是我的地理定位對象的實例

在javascript中我將我的地理對象信號更新連接到一個函數,

function update(lon,lat)
{
// do stuff with lon, lat
}

function init(){
   geo.connect(update); // connect to QT code
   geo.getlocation(); // ask for update from QT code
}

這是比特偽編碼 - 我目前沒有原始代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM