2012-02-09 21 views
1

我正在研究主要是网页视图的iPad应用程序。它提供了一个使用jQuery移动,iScroll和一些次要插件的web应用程序。唯一的两个插件是jQuery mobile和iScroll,所以我不会列出所有的小应用程序,因为在各种不同的情况下,应用程序可能会触发相同的崩溃。iOS应用程序使用Web视图随机崩溃没有好的错误消息

我遇到的真正问题是xCode给我的唯一消息是WebCore在崩溃之前正在做的事情的痕迹。而我无法制造它的头或尾。我一直在四处寻找解决我的问题,但没有发现任何东西。

输出看起来是这样的:

1 WebCore::ScriptExecutionContext::destroyedActiveDOMObject(WebCore::ActiveDOMObject*) 
2 WebCore::ActiveDOMObject::~ActiveDOMObject() 
3 WebCore::SuspendableTimer::~SuspendableTimer() 
4 WebCore::DOMTimer::~DOMTimer() 
5 WebCore::DOMTimer::removeById(WebCore::ScriptExecutionContext*, int) 
6 WebCore::DOMWindow::clearTimeout(int) 
7 WebCore::jsDOMWindowPrototypeFunctionClearTimeout(JSC::ExecState*) 
8 JSC::Interpreter::privateExecute(JSC::Interpreter::ExecutionFlag, JSC::RegisterFile*, JSC::ExecState*) 
9 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) 
10 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) 
11 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) 
12 WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul>&) 
13 WebCore::EventTarget::fireEventListeners(WebCore::Event*) 
14 WebCore::Node::handleLocalEvents(WebCore::Event*) 
15 WebCore::EventContext::handleLocalEvents(WebCore::Event*) const 
16 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) 
17 WebCore::EventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const 
18 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WebCore::EventDispatchMediator const&) 
19 WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) 
20 WebCore::EventTarget::dispatchEvent(WTF::PassRefPtr<WebCore::Event>, int&) 
21 WebCore::EventHandler::dispatchTouchEvent(WebCore::PlatformTouchEvent const&, WTF::AtomicString const&, WTF::HashMap<WebCore::EventTarget*, WTF::Vector<WTF::RefPtr<WebCore::Touch>, 0ul>*, WTF::PtrHash<WebCore::EventTarget*>, WTF::HashTraits<WebCore::EventTarget*>, WTF::HashTraits<WTF::Vector<WTF::RefPtr<WebCore::Touch>, 0ul>*> > const&, float, float) 
22 WebCore::EventHandler::handleTouchEvent(WebCore::PlatformTouchEvent const&) 
23 WebCore::EventHandler::touchEvent(WebEvent*) 
24 -[WebHTMLView touch:] 
25 -[WAKView _handleEvent:] 
26 _ZL13eventCallbackP6WKViewP8WebEventPv 
27 _WKViewHandleEvent 
28 WKWindowSendEvent 
29 -[UIWebBrowserView _dispatchWebEvent:] 
30 -[UIWebBrowserView _webTouchEventsRecognized:] 
31 -[NSObject performSelector:withObject:] 

我得到的唯一真正的错误是提前Thread 1: Program received signal: "EXC_BAD_ACCESS"

谢谢,我很高兴的任何帮助。请指出我正确的方向。

回答

1

好吧,看来我终于解决了这个问题。以为我会在这里分享。

我仍然不知道究竟是什么导致了应用程序崩溃,但我想通过解决方案似乎已经解决了这个问题。

所以,因为我在xcode的输出中得到了来自webkit的核心内容(至少我对这方面的知识知之甚少),这让我开始考虑提供webview的网站。

我读过很多关于移动设备中html5视频的问题,所以我开始看那里。我转向了所有JavaScript并为该网站提供了一个HTML 5视频元素。一切都很顺利,尽管在添加jQuery移动版时,只要我在播放视频的同时尝试滚动,就会返回崩溃。

我以前就知道在iOS设备上使用海报图片存在一些问题。所以我删除了这个,嗯,这个伎俩。

所以总结这件事:

这是我有什么:

<video class="videoSignPlayer" poster="poster.jpg" width="768" height="512" style="display:none;"> 
    <source src="movie.mp4" width="768" type='video/mp4; 
    codecs="avc1.4D401E, mp4a.40.2"' /> 
</video> 

这是工作的标记:

<video class="videoSignPlayer" width="768" height="512" style="display:none;"> 
    <source src="movie.mp4" width="768" type='video/mp4; 
    codecs="avc1.4D401E, mp4a.40.2"' /> 
</video> 

简单的修复。

在使用jQuery-mobile时,在视频元素上使用海报属性似乎有问题。

(是的,我也想在一个<img>标签预装海报图像。到崩溃的唯一解决方案是完全地消除对<video>标签的海报属性。)

相关问题