我是Android开发人员,对JScript / Jquery / Phonegap等没有任何了解。我找到了一个例子,我用我的网页替换了它。在我的网页中,我有一个java脚本如下:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script type="text/javascript">var map;function initialize()
{
var mapDiv = document.getElementById('map-canvas');
map = new google.maps.Map(mapDiv, {center: new google.maps.LatLng(9.0000,-79.5000),zoom: 13,mapTypeId: google.maps.MapTypeId.SATELLITE});
google.maps.event.addListenerOnce(map, 'tilesloaded', addMarkers);}function addMarkers()
{
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
var latLng = new google.maps.LatLng(9.0000,-79.5000);
var marker = new google.maps.Marker({position: latLng,map: map});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
我想动态更改Lat-Long值使用我的android代码。请一些人指导我这样做。
这是在Web视图上加载html页面的android代码。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebViewClient(new NewsClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl("file:///android_asset/www/map.html");
}
private class NewsClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
System.out.println("URL: " + url);
view.loadUrl("javascript:changeLocation('" + url + "')");
return true;
}
}
答案 0 :(得分:1)
我有一个示例android应用程序,其中我使用测试插件作为网关将值从本机代码发送到Javascript插件并更新DOM值。
如果您熟悉phonegap插件,那么理解代码会更容易。我只是在Activity类中使用以下方法来更新html端。这里appcomm.updateValues()
是我的网关插件方法,它从本机代码接收值而不启动来自Javascript的任何调用。
public void sendValue(String value1, String value2) {
JSONObject data = new JSONObject();
try {
data.put("value1", value1);
data.put("value2", value2);
} catch (JSONException e) {
Log.e("CommTest", e.getMessage());
}
String js = String.format("window.plugins.appcomm.updateValues('%s');",
data.toString());
this.sendJavascript(js);
}