百度地图android端URL.api直接展示地图处理

最近项目紧急,要嵌入地图,决定采用android WebView方式加载百度地图的android端URL api方式实现。


利用官网(http://lbsyun.baidu.com/index.php?title=uri/api/android)的API展示出来的都是列表,需要点击地图按钮之后才能展示地图。所以就用WebClient加载过程抓取到加载的链接,然后放到浏览器里打开,点击地图之后比对URL,发现就附带参数"&vt=map&ecom=0"就可以了。所以对加载Client作了处理。

"&vt=map&ecom=0"

附上WebClient的代码:

private class MyWebViewClient extends WebViewClient {
		public void onPageFinished(WebView view, String url) {
			super.onPageFinished(view, url);

		}

		@Override
		public void onReceivedError(WebView view, int errorCode,
				String description, String failingUrl) {
			super.onReceivedError(view, errorCode, description, failingUrl);
		}

		@Override
		public boolean shouldOverrideUrlLoading(WebView view, String url) {
			System.out.println("ssssssssssssss shouldOverrideUrlLoading = "+url);
			if(url.contains("&vt=map&ecom=0")){
				view.loadUrl(url);
			}else{
				view.loadUrl(url+"&vt=map&ecom=0");
			}
			return true;
		}

		@Override
		public void onPageStarted(WebView view, String url, Bitmap favicon) {
			// TODO Auto-generated method stub
			super.onPageStarted(view, url, favicon);
			System.out.println("sssssssssssssss onPageStarted = "+url);
		};
		
	}

附上WebView展示地图出现空白页面的处理,添加如下代码可解决:主要是 。setDomStorageEnable设置。


WebSettings mWebSettings = mWebView.getSettings();
		mWebSettings.setJavaScriptEnabled(true);
		if (NetworkUtils.isNetConnected(this)) {
			mWebSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
		} else {
			mWebSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
		}
		mWebSettings.setSupportZoom(true);// 用于设置webview放大
		mWebSettings.setBuiltInZoomControls(true);
		mWebSettings.setDomStorageEnabled(true);
		mWebSettings.setUseWideViewPort(true);
		mWebSettings
				.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);


你可能感兴趣的:(百度地图,百度地图URL.API,直接显示地图,webview,WebView)