我为此创建了一个小技巧。:)
strings.xml
<string name="html_streetview"> <![CDATA[<html><head> <script src="http://maps.google.com/maps/api/js?v=3&sensor=false" type="text/javascript"></script> </head><body><script type="text/javascript"> Android.echo(); var testPoint = new google.maps.LatLng(%1$s, %2$s,true); var svClient = new google.maps.StreetViewService(); svClient.getPanoramaByLocation(testPoint, 50,function (panoramaData, status) { if (status == google.maps.StreetViewStatus.OK) { Android.hasStreetview(); } else { Android.hasNotStreetview(); } });</script></body></html>]]></string>
现在,在活动上添加用于街景视图的按钮,并将以下代码放入onclick方法中:
if (webView == null) { webView = new WebView(this); webView.setVisibility(View.INVISIBLE); webView.getSettings().setJavascriptEnabled(true); webView.addJavascriptInterface(new JavascriptCheck(this), "Android"); webView.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(this, "Streetview loading", Toast.LENGTH_SHORT).show(); super.onReceivedError(view, errorCode, description, failingUrl); } }); } Toast.makeText(this, "Streetview loading", Toast.LENGTH_SHORT).show(); webView.loadDataWithbaseURL(baseurl, getString(R.string.html_streetview, latitude, longitude), "text/html", "UTF-8", baseurl);
现在是活动的内部类:
public class JavascriptCheck { private final Context context; public JavascriptCheck(Context context) { this.context = context; } public void echo() { Log.d("JavascriptChecker", "javascript called"); } public void hasStreetview() { pushStreetviewState(true); } public void hasNotStreetview() { pushStreetviewState(false); } private void pushStreetviewState(final boolean hasStreetview) { Log.d("JavascriptChecker", hasStreetview); // TODO do your stuff needed here }}
这是一个相当糟糕的解决方法,但可能会有所帮助。:)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)