直接上代码

jsValue functionCallBack(jsExecState es, jsValue object, jsValue* args, int argCount) {

jsData* jsData = jsGetData(es, object);
char* funName= jsData->typeName;
if (strcmp("enterFullScreen",funName)==0) {
    HWND hDesk;
    RECT rc;
    hDesk = GetDesktopWindow();
    GetWindowRect(GetDesktopWindow(), &rc);
    HWND hwnd = wkeGetHostHWND(m_webview);
    GetWindowRect(hwnd, &mainWindowRect);
    SetWindowLong(hwnd, GWL_STYLE, WS_BORDER);
    SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, rc.right, rc.bottom, SWP_SHOWWINDOW);
}else if (strcmp("exitFullScreen", funName)==0) {
    HWND hwnd = wkeGetHostHWND(m_webview);
    SetWindowLong(hwnd, GWL_STYLE, WS_OVERLAPPEDWINDOW);
    SetWindowPos(hwnd, HWND_NOTOPMOST, mainWindowRect.left, mainWindowRect.top, mainWindowRect.right - mainWindowRect.left, mainWindowRect.bottom - mainWindowRect.top, SWP_SHOWWINDOW);
}
else if (strcmp("quit",funName)==0) {
    jsValue params = jsArg(es, 0);
    wkeDestroyWebWindow(m_webview);
 }
return jsUndefined();

}

jsValue buildFunction(jsExecState es,char * name) {

jsData * data = new jsData();
memcpy(data->typeName, name,strlen(name));
data->callAsFunction = functionCallBack;
jsValue func = jsFunction(es, data);
return func;

}

/处理全屏显示/
jsValue bindClient(jsExecState es, void* param)
{

jsValue client = jsEmptyObject(es);
jsSet(es, client, "version", jsString(es, "1.0.0"));
jsSet(es, client, "copyRight", jsString(es, "版权所有禁止任何个人破解和未授权使用"));
jsSet(es, client, "enterFullScreen", buildFunction(es, "enterFullScreen"));
jsSet(es, client, "exitFullScreen", buildFunction(es, "exitFullScreen"));
jsSet(es, client, "quit", buildFunction(es,"quit"));
jsSet(es, client, "open", buildFunction(es, "open"));
return client;

}

然后使用下列代码绑定到miniblink
wkeJsBindGetter("Client", bindClient, &m_webview);


  private  static String formatVersion(String version) {
    return version!=null?version.replaceAll("[^0-9\\.\\-]", "").replaceAll("(^0+)|", "").replaceAll("(\\.0{2,})", "."):"0.0.0";
}
/**
 * 比较版本号
 * 支持格式:
 * V1.0.1,1.0.01, 1.0.1,1.0-10.1
 * @param source
 * @param dest
 * @return
 * =0 source version equals destination version 
 * >0 source version large than destination version
 * <0 source version less than destination version
 * 
 */
private static int compareVersion(String source,String destination) {
    String[] sourceItems = formatVersion(source).split("[._-]");
    String[] destItems = formatVersion(destination).split("[._-]");
    int diff=0;
    for(int idx=0,len=Math.min(sourceItems.length, destItems.length);idx<len;idx++) {
        diff=sourceItems[idx].compareTo(destItems[idx]);
        if(diff!=0) {
            break;
        }
    }
    return diff!=0?diff:(sourceItems.length-destItems.length);
}

rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。
安装方式:
npm install rollup -g
使用后方式:
1.直接使用命令:
rollup 源js文件目录 -o 输出js文件 -f cjs

2.使用配置文件(默认配置文件:rollup.config.js):
rollup -c xxxxx.js

使用配置文件参考格式

export default {
input: '源js文件入口',
output: {
file: '输出文件js地址',
exports: 'default',
format: 'umd',
name: '_',
amd: {

 id: '导出的模块编号',

},
noConflict: true,
sourcemap: true,
sourcemapExcludeSources: true,
legacy: true,
strict: false,
externalLiveBindings: false,
freeze: false,
},
plugins:[]
};

minify 用于min化生成好的js脚本文件
安装方式 :npm install minifier -g
使用方式:
在命令行中输入 minify xxxx.js
即可生成 xxxx.min.js

为了自己的网站不被关闭,大家还是及时的进行备案
这次备案被未收到任何通知的情况下被清除,导致站点停止了近一个月,其导致的影响就不说了。
各种的心酸更是做过备案的人才能理解。
请大家及时备案并关注工信部的调整。

linux下默认时间为美国纽约时间,与中国北京时间相差8个小时。
我发现使用cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime替换了系统的时间后,虽然date命令中的时间是对的,但是java的Date对象获得的时间依然是相差8个小时。这是为什么呢?经多方查证得出不能使用cp命令直接替换,只能使用ln命令链接时区配置
使用以下命令完美解决了两个时间不一致的问题。

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime