我设置了一个javascriptInterface,它允许我在我的应用程序中检索一个paongment操作的结果(在webview中完成),然后显示相应的活动。 奇怪的是,它在某些设备上运行没有任何问题(全部在2.1中),但不适用于我拥有的星系S II(2.2)和欲望(2.3.3)。
我想知道这是来自图书馆的问题还是对我的应用程序的一些误解。
这是我的代码:
@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();
}
}
}
另外,生成的HTML页面中使用的代码如下:
<body onLoad="window.android.sendResult('OK or NOK here');">
答案 0 :(得分:0)
似乎问题出在服务器端,它将某些设备重定向到不具有javascript功能的不同页面上。 (我在自己的服务器上的测试页面上成功测试过,绝对没有问题)