0

私はAndroid開発者であり、JScript / Jquery / Phonegapなどについての知識がありません。例を見つけて、そのWebページを自分のものに置き換えます。私のWebページには、次のような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

テストプラグインをゲートウェイとして使用して、ネイティブコードからJavascriptプラグインに値を送信し、DOM値を更新するAndroidアプリケーションの例があります。

android-cordova-plugin

phonegapプラグインに精通している場合は、コードを理解する方が簡単です。html側を更新するには、Activityクラスで次のメソッドを使用するだけです。これは、 Javascriptappcomm.updateValues()からの呼び出しを開始せずに、ネイティブコードから値を受け取ったゲートウェイプラグインメソッドです。

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 に答える