miniblink学习

1.基本使用

main.cpp

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

cpp 复制代码
#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

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)

cpp 复制代码
void wkeOnDownload(wkeWebView webView, wkeDownloadCallback callback, void* param)

页面下载事件回调。点击某些链接,触发下载会调用。

cpp 复制代码
wkeOnDownload2(webView, onDownloadCallback, nullptr);

点击下载链接,调用onDownloadCallback函数

自定义onDownloadCallback函数,只需要返回值和函数参数与

wkeDownloadCallback函数类型保持一致即可

cpp 复制代码
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;

相关推荐
袋鼠云数栈5 分钟前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛1392462567322 分钟前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
Kobebryant-Manba41 分钟前
学习Bert微调
人工智能·学习·bert
ACP广源盛139246256731 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
xian_wwq1 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
我爱cope1 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
倔强的石头_3 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库
努力努力再努力wz3 小时前
【Redis入门系列】从 KEYS 到 SCAN:渐进式遍历、Cursor 与位反转原理
数据库·redis·缓存
代码的小搬运工3 小时前
KVO学习
学习·ios·cocoa
坐吃山猪3 小时前
【多线程】Lock与Condition
大数据·数据库