Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当应用程序进入后台/活动状态时,安全地暂停/恢复远程UIWebView WebSocket_Ios_Iphone_Objective C_Uiwebview_Websocket - Fatal编程技术网

Ios 当应用程序进入后台/活动状态时,安全地暂停/恢复远程UIWebView WebSocket

Ios 当应用程序进入后台/活动状态时,安全地暂停/恢复远程UIWebView WebSocket,ios,iphone,objective-c,uiwebview,websocket,Ios,Iphone,Objective C,Uiwebview,Websocket,我的应用程序主要是一个全屏UIWebView。它目前没有实现任何方法来处理UIWebView中WebSockets活动的暂停/恢复 理论上,我的应用程序可以阻止WebView做任何事情,只需刷新页面?我不知道这是不是最好的方法,这就是为什么我在这里 每当我按下physical Home(物理主页)按钮,等待一段时间,并试图通过按下应用图标并进入应用程序来恢复应用程序时,应用程序就会崩溃。应用程序通常会崩溃,然后再次恢复到主屏幕。当我再次点击应用程序图标时,应用程序会重新启动,就像设备启动后第一次

我的应用程序主要是一个全屏UIWebView。它目前没有实现任何方法来处理UIWebView中WebSockets活动的暂停/恢复

理论上,我的应用程序可以阻止WebView做任何事情,只需刷新页面?我不知道这是不是最好的方法,这就是为什么我在这里

每当我按下physical Home(物理主页)按钮,等待一段时间,并试图通过按下应用图标并进入应用程序来恢复应用程序时,应用程序就会崩溃。应用程序通常会崩溃,然后再次恢复到主屏幕。当我再次点击应用程序图标时,应用程序会重新启动,就像设备启动后第一次打开一样

在崩溃期间,我在调试信息中看到了如下内容

线程7 WebThread:EXC\u BAD\u访问(代码=1,地址=0x5)

void std::_1::_push_heap_front(WebCore::TimerHeapIterator, WebCore::TimeRheaperator,WebCore::TimerHeapLessThanFunction&, std::_u1::迭代器特征::差异类型) +194

我不知道该怎么办,我的应用程序委托中显然没有为“ApplicationIdentinterBackground”或“ApplicationIDBecMeactive”或任何其他状态进行任何设置,因为我不确定以某种方式“暂停”内容并“恢复”它的最佳方法是什么,甚至不知道如何进行设置。

您可以在JS中停止它

从ObjC收听应用程序状态更改事件(UIApplicationWillResignActiveNotificationUIApplicationIdentinterBackgroundNotification

在回调内部,您将调用stringByEvaluatingJavaScriptFromString来停止WebSocket

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willResignActive) name:UIApplicationWillResignActiveNotification object:nil];

-(void)willResignActive
{
    [m_webView stringByEvaluatingJavaScriptFromString:@"stopWS();"];    // stopWS is implemented in JS
}