【发布时间】:2018-11-01 10:00:44
【问题描述】:
我有一个显示不同位置的纬度和经度数据的网络应用程序。我正在尝试使用在 Xamarin 中使用 Web 视图开发的 android 应用程序打开相同的 Web 应用程序。但是纬度和经度显示为空白。当我使用 Chrome 浏览器时,它工作正常。请帮我。
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.layout3);
web_view = FindViewById<WebView>(Resource.Id.webview);
web_view.Settings.JavaScriptEnabled = true;
web_view.Settings.SetGeolocationEnabled(true);
web_view.SetWebViewClient(new HelloWebViewClient());
web_view.SetWebChromeClient(new GeoWebChromeClient());
web_view.Settings.JavaScriptCanOpenWindowsAutomatically = true;
web_view.Settings.DisplayZoomControls = true;
web_view.Settings.JavaScriptEnabled = true;
web_view.Settings.SetGeolocationEnabled(true);
web_view.LoadUrl("https://abcd.com");
}
class GeoWebChromeClient : WebChromeClient
{
public override void OnGeolocationPermissionsShowPrompt(string origin, GeolocationPermissions.ICallback callback)
{
callback.Invoke(origin, false, false);
}
}
class HelloWebViewClient:WebViewClient
{
// For API level 24 and later
public override bool ShouldOverrideUrlLoading(WebView view, IWebResourceRequest request)
{
view.LoadUrl(request.Url.ToString());
return false;
}
}
【问题讨论】:
-
已给出位置权限清单??和 6 及更高版本的运行时..
-
Android Marshmallow 引入了一个全新的应用程序权限旋转,试图不仅简化权限,而且减少所需的权限数量。你可以参考这个博客blog.xamarin.com/…