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');">