现在,问题已出现在windows之间没有可行的Js通信解决方案.如果子窗口试图调用window.opener或window.parent,它总是返回一个空值,因此,它无法与原始Web视图进行通信.
为了了解哪些iOS浏览器能够有效地执行窗口到窗口的通信,我发现在iPhone上的9个浏览器中,只有Safari才能成功地有效地执行此通信.这让我相信UIWebVIEw会阻止完整的Js窗口到窗口的通信.
有没有人能够让UIWebVIEw与所有Js逻辑完全集成,即窗口到窗口的通信?或者有证据证明Js窗口到窗口的通信是不可能的?任何方向或建议表示赞赏.谢谢!
解决方法 找到可能的解决方将JavaScriptCore.framework添加到linked Frameworks和webVIEwDIDFinishLoad中:
jscontext *parentCtx = [self.parentWebVIEw valueForKeyPath:@"documentVIEw.webVIEw.mainFrame.JavaScriptContext"];jscontext *childCtx = [self.chilDWebVIEw valueForKeyPath:@"documentVIEw.webVIEw.mainFrame.JavaScriptContext"];childCtx[@"window"][@"opener"] = parentCtx[@"window"];
现在当你从chilDWebVIEw调用window.opener.test()时,它将在parentWebVIEw中激活测试函数!
我不确定私有API.仅适用于iOS 7
总结以上是内存溢出为你收集整理的UIWebView Javascript窗口到窗口通信全部内容,希望文章能够帮你解决UIWebView Javascript窗口到窗口通信所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)