2012-03-07 4 views
0

こんにちは、私はローカルのHTMLページから特定の変数の値を取得しようとしています。この関数は単純にx(xは5に設定されている)という単純変数の値を返します。この関数をアンドロイドで呼び出す必要があります。ここに私のコードは、これまでのところです: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:alert()

オプション#2をWebChromeClientonJSAlert()を実装し、JavaScriptコードの使用を持って、あなたのWebViewWebChromeClientを追加:カスタムJavaScript->のJavaブリッジオブジェクトを追加します。 addJavaScriptInterface()経由でWebKitにアクセスし、JavaScriptコードでそのオブジェクトに何かを呼び出す

+0

ありがとうございました。私はいくつかの調査を行う必要があります - この時点で複雑な餌になるでしょう。 – Katana24

+0

こんにちはすべて - 私はjavascript/webviewの問題を明確にした素晴らしいリンクを残したいと思っていました - http://code.google.com/p/openmobster/wiki/JavascriptBridge私がした唯一の違いは、私のものをonResume () 方法。乾杯、再びCommonsWare – Katana24