QWebView HTML5 GeoLocation sur la plate-forme Android

En essayant d'obtenir les coordonnées GPS dans une page Web HTML5 vue avec le port Necessitas de QWebView. Cependant, il répond toujours avec Non pris en charge.

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

J'ai modifié le QWebPage pour autoriser les autorisations:

  • Comment consommer l'événement tactile de la vue enfant dans l'agenda tactile de la vue parentale?
  • Android comment utiliser la ressource de chaîne dans une classe java
  • Arrêter avec le gestionnaire et postDelayed dans Android
  • Comment ajouter des icônes adjacentes aux titres pour le tiroir de navigation Android
  • Définir la valeur constante avec gradle
  • Comment enregistrer la position de défilement de RecyclerView dans Android?
  •  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 ); } } 

    Et définissez les autorisations suivantes:

    Android.permission.INTERNET

    Android.permission.ACCESS_FINE_LOCATION

    Android.permission.ACCESS_COARSE_LOCATION

    MODIFIER

    Selon cette page, l'API GeoLocation est présente dans la construction de QtWebKit.

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

    DÉTAILS

    Téléphone: Galaxy Nexus

    Plate-forme: Android 4.1.1 (SDK 14)

    Framework: Qt 4.8.0 pour Android armv7a

  • Imposer le codage et le décodage d'un enregistrement audio au format G711 (PCMU - uLaw)
  • Création LinearLayout Programmiquement / Dynamiquement avec plusieurs vues
  • Terminer l'activité après que le message toast disparaisse?
  • Comment utiliser isInEditMode () pour voir la mise en page avec une vue personnalisée dans l'éditeur
  • Ajouter des répertoires aux dossiers de ressources dans Android
  • Erreur erronée de génération ionique lors du téléchargement de gradle
  • 2 Solutions collect form web for “QWebView HTML5 GeoLocation sur la plate-forme Android”

    Je pense que vous devrez définir une localisation grossière et une permission Internet car l'emplacement est utilisé uniquement pour les gps si j'ai raison. En tout cas avoir les deux est une bonne cause si gps n'est pas disponible, l'emplacement sur votre connexion Internet sera utilisé.

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

    Je n'ai vraiment pas d'expérience avec qtwebkit, mais ce sont les bases que je peux vous dire.

    Je viens d'essayer quelque chose de très similaire et je n'ai pas pu accéder au navigator.geolocation, donc j'ai mis en place une classe de géolocalisation personnelle et l'ai ajouté au cadre.

    L'objet de mygeolocation a implémenté un signal et une fente

     signal: void updatepos(float lon, float lat); // called from get location when location is found slot: void getlocation(); // gets location and calls updatepos 

    Après la chargement de la page:

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

    Où geo était une instance de mon objet de géolocalisation

    En javascript, j'ai connecté ma mise à jour de signal d'objet géo à une fonction,

     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 } 

    C'est un peu de pseudo-codage – je n'ai pas le code original disponible pour le moment.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.