Mám webovú stránku, na ktorej sa poloha nachádzadetekovaný vo webovom prehliadači úspešne. A na základe polohy sa moje výsledky odfiltrujú. Používam rovnakú webovú adresu webovej stránky vo webovom zobrazení aplikácie pre Android. V aplikácii pre Android však javascript na zisťovanie polohy nefunguje. Máte nejaké návrhy, čo tu robiť?
Vopred ďakujem.
odpovede:
1 pre odpoveď č. 1Mali by ste povoliť javascript pre webové zobrazenie.
Urobiť to,
wv = (WebView) findViewById(R.id.web_view);
wv.getSettings().setJavascriptEnabled(true);
2 pre odpoveď č. 2
Robiť vyššie uvedené ešte nefungovalo pre mňa, ale pridanie nejaký ďalší kód áno - pozri Geolokácia Android Webview
Do môjho objektu webového zobrazenia som pridal nasledujúce
// enable geolocationEnabled
webview.getSettings().setGeolocationEnabled(true);
// enable JavaScriptCanOpenWindowsAutomatically, not sure if this is needed
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
// set setWebChromeClient
webview.setWebChromeClient(new WebChromeClient() {
public void onGeolocationPermissionsShowPrompt(String origin, android.webkit.GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
}
});
Z nejakého dôvodu android.webkit.GeolocationPermissions.Callback
musel byť plne kvalifikovaný názov triedy, po jeho pridaní ako importu ho Eclipse IDE stále nerozpoznal.
1 pre odpoveď č. 3
Iba jedna otázka: Funguje funkcia zisťovania polohy JS v prehliadači Android (nie v prehliadači Android WebView)?
Jedna vec, ktorú si môžete vyskúšať, je pridať do súboru manifestu:
<manifest ... >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
...
</manifest>
Druhým je nastavenie javaScriptEnabled (true) vo vašom webovom zobrazení. Len som si všimol, že niekto na to odpovedal nižšie.
Prečítajte si viac tu: http://developer.android.com/guide/topics/location/obtaining-user-location.html