2014-12-19 3 views
-1

Google지도 자바 스크립트 라이브러리와 함께 자바 스크립트 인터페이스를 사용하려고합니다.
검색 한 결과 거의 비슷합니다.이 JavascriptInterface과 비슷한 것을 발견했습니다. 이것은 내 인터페이스webview의 Android 자바 스크립트 인터페이스

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script> 

<script type="text/javascript"> 
    function testAPI() { 
     JSInterface.test(); 
    } 
</script> 
<script> 
    // gooogle maps code 
    // 
</script> 
</head> 
<body> 
<div id="map-canvas"></div> 
<div><input type="button" value="Make Toast" onClick="testAPI()" /></div> 

:

내 코드는 내가 만드는 곳

public class JavaScriptInterface { 
private Activity activity; 

public JavaScriptInterface(Activity activiy) { 
    this.activity = activiy; 
} 

public void test(){ 
    Toast.makeText(activity.getApplicationContext(), 
      "Javascript interface test.", 0).show(); 
} 
} 

이것은 모든 :

myBrowser = (WebView) findViewById(R.id.mybrowser); 

    myBrowser.setWebChromeClient(new WebChromeClient() { 
     public void onGeolocationPermissionsShowPrompt(String origin, 
       GeolocationPermissions.Callback callback) { 
      callback.invoke(origin, true, false); 
     } 
    }); 
    myBrowser.getSettings().setJavaScriptEnabled(true); 
    String javascrips = null; 
    // myBrowser.loadUrl("file:///android_asset/geolocation.html"); 
    try { 
     AssetManager am = getAssets(); 
     InputStream input = am.open("geolocation.html"); 
     int size; 
     size = input.available(); 
     byte[] buffer = new byte[size]; 
     input.read(buffer); 
     input.close(); 
     javascrips = new String(buffer); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    jsInterface = new JavaScriptInterface(this); 
    myBrowser.addJavascriptInterface(jsInterface, "JSInterface"); 

    myBrowser.loadDataWithBaseURL("file:///android_res/raw/", javascrips, 
      "text/html", "UTF-8", null); 

(버튼에 자바 스크립트를 클릭 testAPI() 함수로 입력), 아무 일도 일어나지 않습니다. Toast가 왜 나타나지 않습니까? 테스트에 @JavascriptInterface를 추가

+0

로 시작하는 주석이 필요하십니까? – 323go

+0

아니요. –

+0

좋습니다. 먼저 수정해야 할 수 있습니다. 귀하의 html에있는'testAPI()'에 대한 호출 뒤에 세미콜론이 있어야합니까? 나는 자바 스크립트보다 자바를 더 많이 사용한다;) – 323go

답변

관련 문제