1.基本使用
main.cpp
#include "webwidget.h"
#include <QApplication>
#include "wke.h"
//工作目录是指当前目录,运行目录是指exe所在路径。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//设置miniblink的全路径+文件名
wkeSetWkeDllPath(L"miniblink_4975_x32.dll");
//效果与wkeInit一模一样
wkeInitialize();
WebWidget * w=new WebWidget(QString("https://www.baidu.com/"));
w->show();
w->onMove();
int ret=a.exec();
return ret;
}
webwidget.h
#ifndef WEBWIDGET_H
#define WEBWIDGET_H
#include <QWidget>
#include "wke.h"
namespace Ui {
class WebWidget;
}
class WebWidget : public QWidget
{
Q_OBJECT
public:
WebWidget(const QString& url="",QWidget *parent =nullptr);
~WebWidget();
wkeWebView webView;
void loadUrl(QString& url);//载入url
void resizeEvent(QResizeEvent *event);//调整大小
void onMove();
private:
Ui::WebWidget *ui;
};
#endif // WEBWIDGET_H
webwidget.cpp
#include "webwidget.h"
#include "ui_webwidget.h"
#include <QHBoxLayout>
#include <QDebug>
#include <locale>
#include <iostream>
WebWidget::WebWidget(const QString& url,QWidget *parent) :
QWidget(parent),
ui(new Ui::WebWidget)
{
webView= wkeCreateWebWindow(WKE_WINDOW_TYPE_CONTROL, (HWND)this->winId(), 0, 0, this->width(),this->height());
wkeShowWindow(webView, TRUE);
wkeLoadURL(webView,url.toLocal8Bit().data());
}
WebWidget::~WebWidget()
{
qDebug()<<"in del";
delete ui;
}
void WebWidget::loadUrl(QString& url)
{
wkeLoadURL(webView,url.toLocal8Bit().data());
}
void WebWidget::resizeEvent(QResizeEvent *event)
{
Q_UNUSED(event);
wkeResize(webView, this->width(),this->height());
onMove();
}
void WebWidget::onMove()
{
wkeMoveWindow(webView,0,0,this->width(),this->height());
}
2.如何实现点击链接,执行下载操作呢?
API DOC (miniblink.net)
void wkeOnDownload(wkeWebView webView, wkeDownloadCallback callback, void* param)
页面下载事件回调。点击某些链接,触发下载会调用。
wkeOnDownload2(webView, onDownloadCallback, nullptr);
点击下载链接,调用onDownloadCallback函数
自定义onDownloadCallback函数,只需要返回值和函数参数与
wkeDownloadCallback函数类型保持一致即可
static wkeDownloadOpt WKE_CALL_TYPE onDownloadCallback(wkeWebView webView,
void* param,
size_t expectedContentLength,
const char* url,
const char* mime,
const char* disposition,
wkeNetJob job,
wkeNetJobDataBind* dataBind)
开启新世界的大门啦!
3.bool wkeCanGoBack(wkeWebView webView)
页面是否可以后退
4.什么是UTF-8编码?写给计算机爱好者 - 知乎 (zhihu.com)
UTF-8:Unicode Transformation Format -8 bits
ASCII:每个字符有一个字节,可以有256个字符。
Unicode:是现在编码所有人类语言的通用标准,甚至包括表情符号。
但,它本身不会以二进制形式存储单词。计算机需要一种方法将
Unicode转换为代码。而UTF-8就是Unicode的编码系统。
它以一字节单位表示字符。
UTF-8将Unicode中的单个字符转换为1到4个字节的集合。
c++ string/char* 字符编码转换 (utf8,chs,gbk...)_c++ utf8_aworkholic的博客-CSDN博客
5.已有const wkeString url;
希望得到char类型的url;
直接使用:wkeGetString(url);
函数原型:const utf8* wkeGetString(const wkeString s);
而typedef char utf8;