• WebView使用简介


    WebView公有属性、方法

    /**
     * 设置javascript接口前缀(用于JS交互作用)
     * 例如设置为"js",那么页面在跳转"js://xxx"时,会走setOnJSCallback回调
     */
    void setJavascriptInterfaceScheme(const std::string &scheme);
    
    /**
     * 设置主页内容、MIME类型、内容编码,基本URL
     * @param data     主要的内容页面。
     * @param MIMEType 描述消息内容类型的因特网标准
     * @param encoding 编码数据
     * @param baseURL  根链接
     */
    void loadData(const cocos2d::Data &data, const std::string &MIMEType, const std::string &encoding, const std::string &baseURL);
    
    /**
     * 设置主页内容和基本URL
     * @param string  主要的内容页面
     * @param baseURL 基URL
     */
    void loadHTMLString(const std::string &string, const std::string &baseURL = "");
    
    /**
     * 加载给定的URL
     * @param url 要加载的URL
     */
    void loadURL(const std::string &url);
    
    /**
     * 加载给定的本地文件
     * @param fileName 要加载的文件路径
     */
    void loadFile(const std::string &fileName);
    
    /**
     * 停止加载
     */
    void stopLoading();
    
    /**
     * 重新加载
     */
    void reload();
    
    /**
     * 判断是否能返回上一页(即回到上一个URL页面)
     * @return 是否能返回
     */
    bool canGoBack();
    
    /**
     * 判断是否能跳转下一页(即加载下一个URL界面)
     * @return 是否能返回
     */
    bool canGoForward();
    
    /**
     * 回到上一页
     */
    void goBack();
    
    /**
     * 前往下一页
     */
    void goForward();
    
    /**
     * 用于调用JavaScript中的函数(如,web:evaluateJS("alert("hello")"))
     */
    void evaluateJS(const std::string &js);
    
    /**
     * 设置是否支持缩放,默认是false
     */
    void setScalesPageToFit(const bool scalesPageToFit);
    
    /**
     * webView的回调函数
     */
    typedef std::function<void(WebView *sender, const std::string &url)> ccWebViewCallback;
    
    /**
     * 设置即将开始加载时的回调
     * @param  callback 回调函数
     * @return true,允许加载;false,不允许加载
     */
    void setOnShouldStartLoading(const std::function<bool(WebView *sender, const std::string &url)>& callback);
    
    /**
     * 获取即将开始加载时的回调
     */
    std::function<bool(WebView *sender, const std::string &url)> getOnShouldStartLoading()const;
    
    /**
     * 设置加载完成时的回调
     * @param callback 回调函数
     */
    void setOnDidFinishLoading(const ccWebViewCallback& callback);
    
    /**
     * 获取加载完成时的回调
     */
    ccWebViewCallback getOnDidFinishLoading()const;
    
    /**
     * 设置加载失败时的回调
     * @param callback 回调函数
     */
    void setOnDidFailLoading(const ccWebViewCallback& callback);
    
    /**
     * 获取加载失败时的回调
     */
    ccWebViewCallback getOnDidFailLoading()const;
    
    /**
     * 设置JS事件回调
     */
    void setOnJSCallback(const ccWebViewCallback& callback);
    
    /**
     * 获取JS事件回调
     */
    ccWebViewCallback getOnJSCallback()const;

    WebView示例

    ctor: function () {
        // 初始化
        var webView = new ccui.WebView();
    
        // 坐标
        webView.setPosition(640, 360);
    
        // 控件大小
        webView.setContentSize(1280, 720);
    
        // 加载网络URL
        webView.loadURL(http://www.baidu.com);
    
        // 允许缩放
        webView.setScalesPageToFit(true);
    
        // 添加到视图上
        this.addChild(webView);
    
        // 设置加载流程回调
        webView.setOnDidFinishLoading(this.OnDidFinishLoading.bind(this));
        webView.setOnDidFailLoading(this.OnDidFailLoading.bind(this));
        webView.setOnShouldStartLoading(this.OnShouldStartLoading.bind(this));
    
        // 设置一个JS跳转的规则,cocosjs是前缀,即当跳转界面cocosjs://xxxx时,会进行回调,查看下面的OnJSCallback()函数
        webView.setJavascriptInterfaceScheme("cocosjs");
    
        // 设置JS回调
        webView.setOnJSCallback(this.OnJSCallback.bind(this));
    },
    
    /**
     * 加载完成后的回调
     * @param sender WebView
     * @param url    链接
     */
    OnDidFinishLoading: function(sender, url) {
        cc.log("webView OnDidFinishLoading");
    },
    
    /**
     * 加载失败后的回调
     * @param sender WebView
     * @param url    链接
     */
    OnDidFailLoading: function(sender, url) {
        cc.log("webView OnDidFailLoading");
    },
    
    /**
     * JS触发时的回调
     * @param sender WebView
     * @param url    链接
     */
    OnJSCallback: function(sender, url) {
        cc.log("JS回调 = " + url);
        if (url == "cocosjs://closeKefuH5") {
            game.UISystem.closeWindow(this);
        }
    },
    
    /**
     * 开始加载时的回调
     * @param sender WebView
     * @param url    链接
     */
    OnShouldStartLoading: function(sender, url) {
        cc.log("webView OnShouldStartLoading");
    
        return true;
    },
  • 相关阅读:
    【转】java线程池ThreadPoolExecutor使用介绍
    java的类加载机制
    java面试问题分类
    ConcurrentHashMap总结
    ffmpeg对视频封装和分离
    SSM的整合
    单例模式的七种写法
    SecureCRT的快捷键
    linux下mysql常用命令
    maven操作
  • 原文地址:https://www.cnblogs.com/guangyun/p/8991466.html
Copyright © 2020-2023  润新知