精易论坛
标题: 【教程】手把手教你做浏览器 ① 基础知识+多标签浏览器 [打印本页]
作者: Admenri 时间: 2021-5-15 23:28
标题: 【教程】手把手教你做浏览器 ① 基础知识+多标签浏览器
简介
ACF(Admenri Cef Framework)是一个专为易语言编写的一套CEF接口转接框架,
旨在提供更好的CEF体验与提升易语言自身浏览器的运行效率,
ACF提供完全面向对象的编程环境,所有回调均以类的形式进行传递,
所有浏览器操作也均在类中完成。
应用场合
①提供对某些ie不支持的网站的渲染
②webgl绘图渲染工作
③网络应用客户端
④交互式webui
⑤性能优异且支持H5的网页浏览器
框架特性
①清晰的模块结构,便于理解的调用方式
②使用类继承的方式自定义事件回调,不受参数类型限制
③支持多进程编程,可使用自带进程通信进行进程间传输消息
④更快的启动速度&加载速度,使用内存函数表映射极大裁剪了dll体积
⑤独家魔改Chromium85内核,加入对Google服务的支持与Widevine支持和Pointer lock&H265等
开始学习
Cef是谷歌工程师利用业余时间开发的一款基于Chromium的开源嵌入式框架,
旨在方便应用程序嵌入Chromium浏览器框架以实现H5特性,
由于基于Chromium修改,所以Cef也继承了相应的特性,其中包括:
①多进程模型
https://blog.csdn.net/u011304970/article/details/77678839
②主进程线程结构
http://www.360doc.com/content/13/0422/15/168576_280135766.shtml
这样,我们从窗口程序开始编写
(注意程序需要从 _启动子程序 启动)
①:ACF的类回调拥有两种传递方式:
a. 引用计数 -> 直接传递易语言类回调指针,可在易语言程序中随时获取回调数据,
但要注意类回调变量是否被销毁
b. 复制数据 -> 复制易语言类数据后传入ACF模块,对类的数据修改只能在调用子程序之前,
传递参数后对类数据的修改会无效化
②:前面提到的Chromium多进程结构,此处需要判断当前进程环境是否为浏览器的子进程,
如果为子进程则无需处理UI相关的代码,直接返回退出程序即可。
③:运行到此说明当前环境已经符合浏览器主进程的运行环境,
要想成功运行Chromium程序,我们需要对ACF进行初始化。
④执行完所有准备工作,就可以开始创建易语言的UI部分了
------------------------------------------------------------------------------
这里要介绍到ACF的一个重要特性:类回调
此时初始化的事件回调参数需要一个ACFApp类型的参数
而我们输入的参数却是另一个类型
但其实这个类继承自ACFApp,所以作为其子类作为参数不会报错,
这样的方式叫做类的继承,简单的说就是覆盖原先父类的方法以实现自定义功能
这里我们需要打开ACF的模块源码->找到对应的类回调->复制全部->更改名称并设置继承类
之后即可以变量的形式来使用类回调接收事件通知
AdmCef.e->类模块: ACFApp->全部复制->改成你想要的名字: 测试_回调->基类: ACFApp
全局变量 全局_回调事件 测试_回调 √
注意如果开头设置为类回调为引用计数,需要注意变量的销毁,此时不建议使用局部变量来作为类回调:
此时就会崩溃退出
--------------------------------------------------------------------------------------------
初始化完毕,窗口UI创建完成后我们就可以进行创建浏览器的操作了
这里用到了前面提到的线程概念
※CEF中常用的线程有:
UI线程 -> 管理绝大部分浏览器功能,在多线程消息循环下异于主线程。
IO线程 -> 管理文件及网络下载读写,包括cookie操作
Renderer线程 -> 仅单进程模式有效,可直接在当前线程获取js返回值
关于 ACF.投递任务
此方法可将某子程序在指定线程上进行运行,
作为ACF中唯一使用子程序指针的回调,
回调子程序需要严格遵守参数中指定格式进行定义:
否则会导致无法平栈崩溃
--------------------------------------------------------------------------------------------------------
大致流程图
本期工程源码(包含运行环境):
[hide=d8]https://admenri.lanzoui.com/b0d2tp66h
密码:3e8c
源码文件为acf_browser.e
如有其他疑问可以加群一起讨论[/hide]
-
QQ截图20210515221049.png
(1.14 MB, 下载次数: 12)
作者: 若在頞然 时间: 2021-5-16 02:19


瑟瑟发抖
作者: wmv520 时间: 2021-5-16 02:50
666666666666666666666666666666666
作者: Delude 时间: 2021-5-16 03:12
这个可以噢
作者: futiem 时间: 2021-5-16 06:23
可以噢可以噢可以噢
作者: FBI追风大大 时间: 2021-5-16 07:38
可以噢可以噢
作者: bxfa 时间: 2021-5-16 08:19
支持支持
作者: Toomy 时间: 2021-5-16 08:55
可以用来填表吗
作者: JhTseng 时间: 2021-5-16 09:16
支持支持
作者: sa123123 时间: 2021-5-16 09:19
厉害了,感谢分享
作者: 撩唇笔 时间: 2021-5-16 09:24
厉害了,感谢分享
作者: 杰西卡技术传媒 时间: 2021-5-16 09:34
厉害了,感谢分享
作者: 期盼i 时间: 2021-5-16 09:37
牛逼哄哄。支持支持。
作者: fengshou 时间: 2021-5-16 09:40
楼主大佬,nb,支持!
作者: 1301ok 时间: 2021-5-16 09:55
学习啦,谢谢了
作者: 菜就多多练 时间: 2021-5-16 10:03
有没有填表例子丫丫
作者: menghan 时间: 2021-5-16 10:05
厉害了,感谢分享
作者: 学习122 时间: 2021-5-16 10:07
感谢分享,支持
作者: Deyl 时间: 2021-5-16 10:09
我来看看好东西
作者: xiazai520 时间: 2021-5-16 10:11
新技能已get√
作者: 深爱者 时间: 2021-5-16 10:13
我来看看好东西
作者: 小墨科技 时间: 2021-5-16 10:27
强烈支持楼主
作者: zjkhzx 时间: 2021-5-16 10:28
111111111111
作者: xinling99 时间: 2021-5-16 10:31
强烈支持楼主
作者: zyjun01 时间: 2021-5-16 10:54
感谢分享,支持
作者: 元老 时间: 2021-5-16 10:54
想看看浏览器控制台怎么写
作者: oycs429 时间: 2021-5-16 10:55
让 江小白 来看看帖子里藏了啥好东西~~~
作者: 13145313103 时间: 2021-5-16 10:57
6666666666666666666666
作者: yuan6805053 时间: 2021-5-16 11:18
学习一下
作者: yanghu 时间: 2021-5-16 11:23







作者: aismy 时间: 2021-5-16 11:25
很棒,支持
作者: 我們還太嫩 时间: 2021-5-16 11:44
建议大佬用markdown书写 教程 
作者: kentfung 时间: 2021-5-16 11:50
不知道支不支持指纹修改和带密码的socks5呢?
作者: 天雨时晴 时间: 2021-5-16 12:14
必须支持


作者: yoobaby 时间: 2021-5-16 13:41
看的多标签。
作者: wshihuxue1 时间: 2021-5-16 13:43
奈斯 看看高手操作!
作者: zyjun01 时间: 2021-5-16 13:58
这个可以单进程吗
作者: 扣扣 时间: 2021-5-16 14:48
不管东西咋样 还是先谢谢了
作者: zifeiyu 时间: 2021-5-16 15:06
.....................
作者: ak360 时间: 2021-5-16 15:45
ACF(Admenri Cef Framework)是一个专为易语言编写的一套CEF接口转接框架,
作者: 哥只是一个传说 时间: 2021-5-16 15:53
路过,也不知道能不能播放视频和电影一类的
作者: 想学易语言 时间: 2021-5-16 16:30
新技能已get√
作者: 说的改变 时间: 2021-5-16 16:38
1111111111111111111111111111111
作者: zzzzzzzz88 时间: 2021-5-16 16:56
学习一下!!!!
作者: 登峰望岳 时间: 2021-5-16 17:25
感谢分享,很给力!~
作者: 枫眼 时间: 2021-5-16 17:35
66666666666666666
作者: 我是太子 时间: 2021-5-16 18:16
感谢分享,很给力!
作者: daliubeyond 时间: 2021-5-16 18:48
学习学习啊啊
作者: cgscct 时间: 2021-5-16 19:23
太棒了 必须支持
作者: snak2020 时间: 2021-5-16 19:37
谢谢分享,学习
作者: ljx111 时间: 2021-5-16 19:50
感谢分享~~~~~~~~~~~~~~~~~~~~~~~~~!
作者: leetour 时间: 2021-5-16 21:30
新技能 下载学习下
作者: 痴情公子 时间: 2021-5-16 21:35
多标签浏览器
作者: kk2apple 时间: 2021-5-16 22:23
这里有源码分享吗?大佬
作者: leiwawa001 时间: 2021-5-16 22:38
谢谢分享。
作者: snufgpl 时间: 2021-5-17 00:22
多标签浏览器
作者: 列明 时间: 2021-5-17 00:31
瀏覽器已經是一個足夠臃腫的工程了!
作者: 网络注册会员 时间: 2021-5-17 07:20
谢谢分享
作者: drogan2 时间: 2021-5-17 09:14
让 江小白 来看看帖子里藏了啥好东西~~~
作者: Q:353971112 时间: 2021-5-17 10:29
感谢开源, 支持原创
作者: 910265444 时间: 2021-5-17 11:18
感谢大佬的教程和分享开源
作者: 飞飞怕冷 时间: 2021-5-17 11:41
下来学习一下
作者: yaokui6659 时间: 2021-5-17 12:19
教程】手把手教你做浏览器 ① 基础知识+多标签浏览器
作者: 天涯阿肯 时间: 2021-5-17 13:04
给大佬递茶。。。
作者: 阳明先生 时间: 2021-5-17 13:12
给大佬递茶。。。
作者: 天霸动霸tua 时间: 2021-5-17 13:46
6666666666666666666
作者: lxh1230 时间: 2021-5-17 17:30
666666666666666666666666666666666666666666
作者: 猥琐小胖子 时间: 2021-5-17 17:53
感谢分享
作者: 蓝大侠 时间: 2021-5-17 17:54
看看怎样
作者: nw828622hr 时间: 2021-5-17 18:39
这个一定要赞,感谢大佬无私的分享
作者: bianyuan456 时间: 2021-5-17 18:48
感谢你给易语言造轮子,除了收费的猫头鹰我没用过没法评论之外,就你厉害了
作者: dazui001 时间: 2021-5-17 19:04
哇爱了爱了
作者: 芒果一号 时间: 2021-5-17 19:04
感谢大佬
作者: f100long 时间: 2021-5-17 20:04
努力学习 天天向上
作者: 昨夜的雨 时间: 2021-5-17 20:52
感谢分享
作者: aini1wna2 时间: 2021-5-17 21:34
感谢分享,很给力!~
作者: yaokui6659 时间: 2021-5-17 23:57
问个,小白问题,我怎么手动提取查看本浏览器所产生的cookie
作者: fangming01 时间: 2021-5-18 06:43
111111111111111111111111
作者: 圣帝 时间: 2021-5-18 06:46
66666666666
作者: 932386905 时间: 2021-5-18 08:51
这个可以更改底层吗?
作者: 非常猥锁 时间: 2021-5-18 09:04
这必须点赞!牛逼
作者: Best149 时间: 2021-5-18 11:26
谢谢分享
作者: 谈谈的味道 时间: 2021-5-18 11:32
这可是个好东西...
作者: 布鲁惠斯 时间: 2021-5-18 13:58
感谢分享,很给力!~
作者: sd3970566 时间: 2021-5-18 17:23
这么屌吗
作者: 花间一壶酒 时间: 2021-5-18 17:26
收下本期工程源码
作者: other 时间: 2021-5-18 18:20
有没有最最最最简单的
作者: 442497277 时间: 2021-5-18 20:12
新技能已get√
作者: yyh 时间: 2021-5-18 21:07
感谢分享OK
作者: 329948513 时间: 2021-5-18 21:08
那就发过火
作者: zwx周 时间: 2021-5-18 21:12
6666
作者: hbe 时间: 2021-5-18 21:55
大佬6666666
作者: SSe 时间: 2021-5-18 22:29




作者: linfenfang 时间: 2021-5-18 22:41
隐藏了 什么 支持一下
作者: 7866313 时间: 2021-5-19 01:05
我人数我的爱迪生阿大声道的大声道撒达到adad对对对
作者: zzzyf 时间: 2021-5-19 08:36
#在这里快速回复# 这个一定要赞,感谢大佬无私的分享,谢谢
作者: azhi 时间: 2021-5-19 09:22
RE: 【教程】手把手教你做浏览器 ① 基础知识+多标签浏览器 [修改]
作者: jeson998 时间: 2021-5-19 11:16
看看吧,搞个私人浏览器用
作者: MC小月 时间: 2021-5-19 12:24
感谢开源
作者: csmdk 时间: 2021-5-19 13:29
看看浏览器多少m
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |