不需要的“Javascript确认”对话框

时间:2017-01-10 16:10:59

标签: android crosswalk-runtime crosswalk

我正在使用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");
}

如何在这个对话框中找到壁球?

0 个答案:

没有答案