我正在开发一个使用JavascriptCore具有脚本功能的iOS 7应用程序。
我想有办法暂停或完全停止当前在JSContext上运行的代码。 JavascriptCore没有很好的文档,所以我找不到答案。
我有一些想法:
但希望有更好的方法。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
实际上有一个API允许停止在JavascriptCore内部执行Javascript代码。不过遗憾的是,它是私有的,因此不能在要通过App Store分发的应用程序中使用。
有问题的API是JSContextRefPrivate中定义的JSContextGroupSetExecutionTimeLimit
函数。不仅允许为您的JS代码指定超时,而且还允许定期调用回调以确定是否应停止执行。
您可以在我对this这样的问题的答案中找到更多信息。
答案 1 :(得分:0)
如果仍然相关,您可以创建一个循环来添加计数器(在每个循环后上升)和计数器的最大值。我假设您可以使用第二个核心,因为它被称为javascript 核心。在第二个核心中,您可以放置一个函数,将计数器的值增加10,使其超过计数器的最大值,因此代码将继续。如果一次可以调用2个函数,则不需要第二个核心。
否则,您可以使用不同的名称存储所有内容,并且无需覆盖旧的名称。
答案 2 :(得分:-1)
当触发JSContext对象时,你可以使用java脚本超时回调
function myFunction() {
alert('wait is over');
}
<!DOCTYPE html>
<html>
<body>
<button onclick="setTimeout(myFunction, 3000);">Click Me</button>
<!-- In this context im using a simple button to trigger the call back in your case u can triggeer on jscontext-->
</body>
</html>