zoukankan      html  css  js  c++  java
  • UIWebView JSContext相关问题

    近期和同事的项目中使用到了UIWebview的JSContext相关的特性

    由于开始从ios7适配,可以用javascriptcore.framework,和h5的通信也相对以前简单了很多,不需要定义那么多的url shcema

    具体javascript和native通过javascriptcore互相调用的例子可以看这个

    http://justsee.iteye.com/blog/2036713

    这里遇到一个tricky问题

    JSContext这个对象会经常变化,在WebView开始load到finish load会变化,在finishload之后在页面内href链接到另一个页面也会变化

    及时的获取到当前的jscontext对象非常关键

    JSContext *ctx = [webView valueForKeyPath:@”documentView.webView.mainFrame.javaScriptContext”];

     上面这种方式获取的时候,不能在context变化后及时知道

    mac底下有个api,每次create新的contenxt就会有回调出来

    @implementation NSObject (magic)
    - (void) webView: (id) unused didCreateJavaScriptContext: (JSContext*) ctx forFrame: (id) frame
    {
        // ...
    }
    @end
    具体可以看这个开源工具:
    https://github.com/TomSwift/UIWebView-TS_JavaScriptContext
    这个开源工具里面有私有api调用,如果要是上传appstore要注意删除其中的几行代码


  • 相关阅读:
    4.iptables 网络防火墙
    iterator not dereferencable问题
    秒杀多线程系列中的题目
    说说僵尸和孤儿进程的那点儿事
    Linux的fork()写时复制原则(转)
    linux进程原语之fork()
    linux--多进程进行文件拷贝
    哈夫曼树与哈夫曼编码
    csp公共钥匙盒
    字典树
  • 原文地址:https://www.cnblogs.com/wxm5558/p/5477828.html
Copyright © 2011-2022 走看看