新版辅助H5页面定位

您所在的位置:网站首页 h5api定位 新版辅助H5页面定位

新版辅助H5页面定位

2023-04-22 18:41| 来源: 网络整理| 查看: 265

该部分为新版H5辅助定位说明,使用定位SDK v3.8.0以及后续版本的开发者请参考该部分说明,

辅助 H5 页面定位功能服务于集成高德定位 SDK 以及使用高德 Javascript-Api 实现 H5 页面的 App,当页面需要使用位置时可以选择使用定位 SDK 辅助提供位置信息。

从3.8.0版本开始,针对H5辅助定位新增加了一个接口startAssistantLocation(WebView webView)用于启动H5辅助定位,之前的H5辅助定位接口startAssistantLocation()已在V6.0.0及之后版本中下线。

新版H5辅助定位接口核心代码如下, 详细代码请参照官网最新的Demo。

第一步,准备工作

请您参考获取定位数据章节的前期准备工作,包括配置AndroidManifest.xml、初始化定位。

第二步,初始化AMapLocaitonClient

使用下面的代码初始化AMapLocaitonClient:

JavalocationClient = new AMapLocationClient(getApplicationContext());

第三步,加载WebView控件

新版H5辅助定位需要加载webView控件,使用下列方法进行加载:

JavawebView = (WebView) findViewById(R.id.webView);

第四步,启动H5辅助定位, 建议在设置WebView属性之前启动H5辅助定位

调用如下方法启动新版H5辅助定位:

Java//请尽量在设置webView属性之前调用,如果在webView属性之后调用体验可能不如这样好 locationClient.startAssistantLocation(webView);

第五步,设置webView属性

新版H5辅助定位需要设置的webView属性如下:

Java//加载URL webView.loadUrl(Utils.URL_H5LOCATION); //设置webView参数和WebViewClient WebSettings webSettings = webView.getSettings(); // 允许webview执行javaScript脚本 webSettings.setJavaScriptEnabled(true); webView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } }); webView.setWebChromeClient(new WebChromeClient() { // 处理javascript中的alert public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { return true; }; // 处理javascript中的confirm public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { return true; }; // 处理定位权限请求 @Override public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) { callback.invoke(origin, true, false); super.onGeolocationPermissionsShowPrompt(origin, callback); } @Override // 设置网页加载的进度条 public void onProgressChanged(WebView view, int newProgress) { Assistant_Location_Activity.this.getWindow().setFeatureInt( Window.FEATURE_PROGRESS, newProgress * 100); super.onProgressChanged(view, newProgress); } // 设置应用程序的标题title public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); } });

第六步,停止辅助定位

当您使用完辅助 H5 页面定位功能时,请及时停止该功能,避免不必要的设备能耗开销。

JavalocationClient.stopAssistantLocation();

JS核心代码JavaScript//引入高德JSAPI var log = document.getElementsByClassName('log')[0]; var map = new AMap.Map('container',{ resizeEnable: true, zoom: 10, center: [116.43, 39.9] }); AMap.plugin(['AMap.Geolocation'], function(){ geo = new AMap.Geolocation({ useNative:true }) geo.on('complete',function(e){ log.innerHTML+=e.info+' '+e.position+' '+e.message.split('.')[0]+'' }) geo.on('fail',function(e){ log.innerHTML+=e.info+e.message.split('.')[0]+'' }) // map.addControl(geo); }); //获取位置按钮 获取位置 连续定位 停止定位



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3