2012-03-07 2 views
0

안녕하세요, Im은 로컬 HTML 페이지에서 특정 변수 값을 가져 오려고합니다. 이 함수는 단순히 x (x는 5로 설정 됨)라는 간단한 변수의 값을 반환하므로이 함수를 Android에서 호출하려고합니다. 여기 내 코드는 지금까지 있습니다 :Webview 및 javascript 사용

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mWebView = (WebView) findViewById(R.id.webview); 

    WebSettings webSettings = mWebView.getSettings(); 
    webSettings.setSaveFormData(false); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.loadUrl("file:///android_asset/tester.html"); 

    getScript = (Button) findViewById(R.id.test); 
    getScript.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      mWebView.loadUrl("javascript:getX()"); 
     } 
    }); 
    Toast.makeText(this, "Hello World", duration); 
} 

그래서 아이디어는 getScript 버튼을 호출 할 때는 HTML 페이지에서 함수를 호출하지만 어떻게 내가 그 값이 표시 얻을 것입니까? 아래 토스트 메시지처럼?

건배

답변

1

이 옵션 # 1 :하는 WebChromeClient 당신의 WebView에 추가 구현 onJSAlert()WebChromeClient에서하고있는 자바 스크립트 코드를 사용 alert()

옵션 # 2 : 사용자 정의 JavaScript-> 자바 다리 객체를 추가 addJavaScriptInterface()을 통해 WebKit에 연결하고 해당 객체에 JavaScript 코드를 호출하십시오.

+0

감사합니다. 나는이 모든 것을 조사해야 할 것입니다.이 시점에서 복잡한 것 같습니다. – Katana24

+0

안녕하세요. 전체 - 내 자바 스크립트/webview 문제 - http://code.google.com/p/openmobster/wiki/JavascriptBridge 분명히 위대한 링크를 여기에 떠날 줄 알았는데 유일한 차이는 onResume에 내 물건을로드하지 않았다() 메소드를 호출합니다. 다시 건배 CommonsWare – Katana24