package
com.example.geolocation2;
import
android.Manifest;
import
android.app.Activity;
import
android.content.pm.PackageManager;
import
android.support.v4.app.ActivityCompat;
import
android.support.v4.content.ContextCompat;
import
android.support.v7.app.AppCompatActivity;
import
android.content.DialogInterface;
import
android.os.Bundle;
import
android.view.KeyEvent;
import
android.webkit.GeolocationPermissions;
import
android.webkit.JsResult;
import
android.webkit.WebChromeClient;
import
android.webkit.WebSettings;
import
android.webkit.WebView;
import
android.webkit.WebViewClient;
import
android.app.AlertDialog;
public
class
MainActivity
extends
AppCompatActivity {
private
WebView mWebView;
public
class
GeoWebViewClient
extends
WebViewClient {
@Override
public
boolean
shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return
true
;
}
}
public
class
GeoWebChromeClient
extends
WebChromeClient {
@Override
public
void
onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback) {
callback.invoke(origin,
true
,
false
);
}
}
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.setWebViewClient(
new
WebViewClient());
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(
true
);
webSettings.setSupportMultipleWindows(
false
);
webSettings.setJavaScriptCanOpenWindowsAutomatically(
true
);
webSettings.setLoadWithOverviewMode(
true
);
webSettings.setUseWideViewPort(
true
);
webSettings.setSupportZoom(
false
);
webSettings.setBuiltInZoomControls(
false
);
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setDomStorageEnabled(
true
);
webSettings.setGeolocationEnabled(
true
);
webSettings.setAppCacheEnabled(
true
);
webSettings.setDatabaseEnabled(
true
);
mWebView.setWebViewClient(
new
GeoWebViewClient());
mWebView.setWebChromeClient(
new
GeoWebChromeClient());
mWebView.setWebViewClient(
new
WebViewClient() {
@Override
public
boolean
shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return
true
;
}
});
mWebView.setWebChromeClient(
new
WebChromeClient() {
@Override
public
void
onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
super
.onGeolocationPermissionsShowPrompt(origin, callback);
callback.invoke(origin,
true
,
false
);
}
});
}
}