2016-06-13 9 views
0

私はアンドロイドを学習しています。トップナビゲーションメニューにアンドロイドネイティブコードがあり、残りのサイトがウェブビューになっているシンプルなアプリを作成しました。ユーザーがウェブビューでカートに商品を追加したときにカートアイテムを更新するにはどうすればよいですか?

メインメニューには、カートとウィッシュリストアイテム用のボタンがあります。このメニュー項目の上部には、カートとウィッシュリストの項目数を示す数字が表示されます。

ユーザーがウェブビュー形式でカートに商品を追加すると、ネイティブメニューにすぐに反映されないという問題があります。この問題を解決するために私は何ができますか?

+0

すぐには反映されていないか、反映されていませんか? – H4SN

+0

両方が異なるプラットフォームにあるので、実際には反映されません。実際には、15秒ごとにバックグラウンドウェブサービスを実行して、カートとウィッシュリストの合計アイテムを取得し、カートで更新します。しかし、このアプローチはあまりにもスケーラブルではありません。したがって、私は代替案を探しています。 –

答えて

0

ユーザーがカートに商品を追加すると、カウンタを更新するJavaScriptコード(おそらくTextView)からAndroidメソッドを呼び出す必要があります。

あなたのActivityにこのような何かを行うことができるはず:登録

@JavascriptInterface 
public void updateCounter(int count) { 
    yourTextView.setText(Integer.toString(count)); 
} 

あなたActivity JavaScriptのインターフェイスとして:

// you could do this in onCreate() 
yourWebView.addJavascriptInterface(this, "Android"); 

そして、あなたはあなたのJavaScriptコードからupdateCounter()を呼び出すことができます:

<script type="text/javascript"> 

    // ... 

    // call this function whenever/wherever you would like to update your counter 
    function updateCounter(count) { 
     Android.updateCounter(count); 
    } 
</script> 

JavaScriptコードをAndroidコードにバインドする場合は、this documentationをチェックしてください。

関連する問題