2012-06-12 4 views
0

나는 안드로이드 개발자이며 JScript/Jquery/Phonegap 등에 대해 전혀 모른다. 예제를 발견하고 웹 페이지를 내 것으로 교체한다. 내 웹 페이지에는 다음과 같은 자바 스크립트가 있습니다.기능 변경 안드로이드 코드의 가치

<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 값을 변경하고 싶습니다. 내 안드로이드 코드를 사용하고 싶습니다. 제발 저를 안내해 줄 사람이 하나 있습니다.

웹보기에서 HTML 페이지를로드하는 안드로이드 코드입니다.

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; 
    } 
} 

답변

1

나는 내가 DOM 값을 자바 스크립트 플러그인에 네이티브 코드에서 값을 전송하고 업데이트 할 게이트웨이 테스트 플러그인을 사용하는 예 안드로이드 응용 프로그램이 있습니다. 당신은 폰갭 플러그인에 익숙하다면

android-cordova-plugin

다음 코드를 이해하기 쉬울 것이다. html 측면을 업데이트하기 위해 내 Activity 클래스에서 다음 메소드를 사용하기 만하면된다. 여기 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); 
    }