У меня в настоящее время есть проблема с геолокацией в webview. У меня есть веб-приложение. Я в настоящее время не использую phonegap или любую другую платформу для мобильных устройств. Я был неудачен при получении встроенной html5 геолокации API JavaScript для работы над приложением, которое работает в webview в приложении для Android. Сайт хорошо работает иначе из браузера Chrome на андроиде 2.0 + (поддерживаемая геолокация).
Я компилирую против версии 5 API андроида.
Я уже прочитал это сообщение
Решение Phonegap записи прокси, который переносит созданный в вызов и использует действие хоста вместо этого, хорошо, но я предпочел бы использовать встроенный для webview (WebKit), не используя телефонный разрыв.
Я установил верные полномочия в файле манифеста:
Вот отрывок примера кода:
webview = (WebView) findViewById(R.id.webview);
pbarDialog = new ProgressDialog(this);
pbarDialog.setCancelable(false);
pbarDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
webview.setWebViewClient(new MyWebViewClient());
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new MyChromeWebViewClient());
webview.setVerticalScrollBarEnabled(false);
WebSettings webSettings = webview.getSettings();
webSettings.setSavePassword(true);
webSettings.setSaveFormData(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setGeolocationEnabled(true);
...
private class MyChromeWebViewClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 100);
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(LOG_TAG, message);
// This shows the dialog box. This can be commented out for dev
AlertDialog.Builder alertBldr = new AlertDialog.Builder(activity);
alertBldr.setMessage(message);
alertBldr.setTitle("Alert");
alertBldr.show();
result.confirm();
return true;
}
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}
}
У кого-либо еще были проблемы с тем, чтобы заставлять веб-приложение работать в webview?