我有一个Jquery Mobile 1.4和Jquery 2.0网页,我在Android Webview(Android 4+)中提供。一切正常,直到我开始使用SSE。由于WebViewCoreThread上的信号11,应用程序会定期崩溃。
当从页面导航到页面然后随机导航时,会发生 。
没有堆栈跟踪,只有0x00000000处的信号11。
这是javascript代码:
if ( typeof (EventSource) !== "undefined") {
// sse
//console.log("sse");
chatnotificationsource = new EventSource("php/process_get_chat_notification.php");
chatnotificationsource.onmessage = function(event) {
var message = event.data;
console.log("got message " + message);
$("#chatnotification").show();
};
}
当我关闭SSE代码时没有问题,所以它显然与SSE调用有关。我正在使用以下WebView初始化。
@SuppressLint("SetJavaScriptEnabled")
protected void createWebView(int webViewId) {
webView = (WebView) findViewById(webViewId);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setRenderPriority(RenderPriority.HIGH);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setAppCacheMaxSize(20 * 1024 * 1024); // 20MB
webView.getSettings().setAppCachePath(
getApplicationContext().getCacheDir().getAbsolutePath());
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAppCacheEnabled(true);
// load online by default
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
if (!connectionDetector.isConnectingToInternet()) {
// loading offline
webView.getSettings().setCacheMode(
WebSettings.LOAD_CACHE_ELSE_NETWORK);
}
// clients
webView.setWebViewClient(customWebViewClient);
webView.setWebChromeClient(customWebChromeClient);
}
我希望在SSE呼叫正在运行或“处理”时Android与导航到另一个页面有关。
感谢您的帮助, Coenos
答案 0 :(得分:0)
结合Android WebView远离SSE解决了这个问题。此(尚未)没有WebView补丁/更新或解决方法。