0

我是一名 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>

我想使用我的 android 代码动态更改 Lat-Long 值。请有人指导我这样做。

这些是在 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;
    }
}
4

1 回答 1

1

我有一个示例 android 应用程序,其中我使用测试插件作为网关将值从本机代码发送到 Javascript 插件并更新 DOM 值。

android-cordova-插件

如果您熟悉 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);
    }
于 2012-06-12T18:35:30.087 回答