2011-06-22 74 views
1

我設置了一個javascriptInterface,它允許我在應用程序中檢索paiement操作的結果(在webview中完成),然後顯示相應的活動。 奇怪的是,它在一些設備上沒有任何問題(全部在2.1),但與我有(2.2)和Desire(2.3.3)的星系S II沒有任何問題。JavascriptInterface不適用於版本> 2.1

我想知道這是從圖書館或我的應用程序的一些錯覺的問題。

這裏是我的代碼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    webview.getSettings().setUserAgentString(iphone_user_agent); 
    webview.getSettings().setJavaScriptEnabled(true); 

    webview.addJavascriptInterface(new JavaScriptInterface(this), "android"); 

    webview.loadUrl(url_paiement+"?iphone_idsession="+xml.getSession().getIdsession()); 
} 

而我的等級:

final class JavaScriptInterface { 
    Context mContext; 

    /** Instantiate the interface and set the context */ 
    JavaScriptInterface(Context c) { 
     mContext = c; 
    } 

    /** 
    * Function binded to webview javascript 
    * Called via : window.android.sendResult('result'); 
    */ 
    public void sendResult(String result) { 

     Log.d("JavascriptInterface","OK"); 

     //Error message depending on result 
     if(result.equals("OK")){ 
      Toast.makeText(mContext, paiement_success, Toast.LENGTH_LONG).show(); 
      BaseActivity.paiment_ok = true; 
      finish(); 
     }else if(result.equals("NOK")){ 
      Toast.makeText(mContext, paiement_error, Toast.LENGTH_LONG).show(); 
      BaseActivity.paiment_error = true; 
      finish(); 
     }else{ 
      Toast.makeText(mContext, paiement_error_server, Toast.LENGTH_LONG).show(); 
      BaseActivity.paiment_error = true; 
      finish(); 
     }   
    } 
} 

Additionnaly,在生成的HTML頁面中使用的代碼如下:

<body onLoad="window.android.sendResult('OK or NOK here');"> 

回答

0

好像這個問題在服務器端,它重定向了一些不具有javascript fu的頁面上的一些設備nction。 (我成功在我自己的服務器上的測試頁上進行測試,並且絕對沒有問題)

相關問題