我正在使用Crosswalk嵌入API(22.52.561.4)将Web应用程序包装在Xwalk Web视图中。一切正常,包括Web应用程序和本机应用程序之间的一些Javascript界面功能。
但是,出于某种原因,Crosswalk会在看似随机的时间内抛出标题为“Javascript Confirm”的原生Android对话框,其中包含选项“取消”和“确定”。我没有将任何原生对话框编码到应用程序中,我不知道是什么导致它出现。
我在文档中找不到任何关于此对话框的提及。我只知道它来自Crosswalk,因为这个确切的文字出现在Crosswalk图书馆的几个地方,例如:
//xwalk_core_library\22.52.561.4\res\values\android_xwalk_strings.xml
<string name="js_confirm_title">"Javascript Confirm"</string>
选择“确定”会重新加载网页视图,而选择“取消”只会关闭对话框。
我的应用活动:
public class MyActivity extends XWalkActivity {
private XWalkView xWalkWebView;
private XWalkSettings webSettings;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
xWalkWebView = (XWalkView)findBewById(R.id.webview);
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
}
protected void onResume() {
super.onResume();
}
public void onXWalkReady() {
xWalkWebView.load("http://my.web.app", null);
}
protected void onStart() {
super.onStart();
xWalkWebView.setResourceClient(new XWalkResourceClient(xWalkWebView) {
public void onLoadFinished(XWalkView view, String url) {
super.onLoadFinished(view, url);
}
public boolean shouldOverrideUrlLoading(XWalkView view, String url) {
if (!url.equals("http://my.web.app") {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
}
else {
return super.shouldOverrideUrlLoading(view, url);
}
}
xWalkWebView.setUIClient(new XWalkClient(xWalkWebView));
class JSBridge {
private Handler handler = new Handler();
public void loggedON() {
handler.post(() > {
Log.i(TAG, "user was logged in");
});
}
public void loggedOFF() {
handler.post(() > {
Log.i(TAG, "user was logged out");
});
}
}
xWalkWebView.addJavascriptInterface(new JSBridge(), "Android");
}
如何在这个对话框中找到壁球?