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;
},
原文地址:https://www.cnblogs.com/guangyun/p/8991466.html