让我解释一下我的问题,这让我很久没有烦恼。任何帮助将不胜感激。请帮忙。
我正在研究iOS中的混合类应用程序。我使用UIWebView
从http://myserver.com加载网页(其示例不是实际网址)我在此服务器上托管了多个网页。
我正在使用“JSContext”在UIWebView
和本机iOS功能中的 javascript (从我的服务器加载的网页)之间进行通信。
我遵循UIWebView JavaScript losing reference to iOS JSContext namespace (object)给出的程序,上下文已经丢失,但我已添加解决方案中提供的解决方法。
事件然后在UIWebView
内的某些帧加载我的iOS上下文正在消失。
遵循以下步骤后,上下文消失了。
UIWebView
的myserver中加载 page1 。几乎所有功能都适用于所有功能OS本机iOS都是从 javascript 。UIWebView
javascript 上下文中消失了。还有一件神奇的事情。如果我在UIWebView
中直接加载page2而不是间接加载(第1页 - > 第2页)。一切正常,所有本地方法都按照预期从UIwebView
调用。
请帮忙。如果您想了解更多信息,请询问。
答案 0 :(得分:2)
首先,以这种方式窃取和使用UIWebView的JavaScriptContext可能是应用拒绝的途径。
但如果这只是一个科学项目......
您可以尝试另一种技术来获取JavaScriptContext。我在这个GitHub项目中提出了一个解决方案:
https://github.com/TomSwift/UIWebView-TS_JavaScriptContext
基本上我正在使用一些知识来了解WebKit如何在NSObject上实现一个类别来拦截一些非handeled WebKit委托方法,这些方法在为一个帧创建一个新的JavaScriptContext时被调用。