【教程】iApp裕v3浏览器控件的极致开发

IAPP   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-1-21

[滑稽][OK]本教程帖子长期实时更新
若有需要建议收藏
[观看时请开启楼主模式]
教程目的是减少iapp的劣质浏览器
希望任何人的作品都能像AD浏览器那样的高品质[滑稽][玫瑰]

可以到下面这个帖子作者的发帖列表里找到AD浏览器的源码[滑稽]
现在共享空间除了我的质子浏览器以外几乎没有什么更好的浏览器
(当然我的质子浏览器只是个实验废品而已..)
(顺手说一下我目前有个iapp的新浏览器项目)
(氢离子浏览器--功能更强大,且品质远远高于AD浏览器)
(完善后会免费开源,届时会在凯特社区和共享空间上传)
#【原创开发】AD浏览器4.5.0版本,无广告无毒绿色浏览器#

教程从评论区开始[滑稽][OK]

差点忘了镇楼图[滑稽][心碎]

沙发
钻需Kill 2022-1-21
审核ing[滑稽][心碎]
板凳
钻需Kill 2022-1-21
一:基础操作
1.从浏览器的属性开始入手
相对于其他控件,最明显的就是多了url这个属性
它可以设定浏览器加载的网址
(还有些特殊玩法,比如fill://可以加载本地文件)
地板
钻需Kill 2022-1-21
(上个评论file打错了,是file不是fill,见谅[滑稽][心碎])
file://的用法
file://+路径
可以打开html等浏览器可以加载的文件
(注意这里不能用iapp的@和$等代替存储目录/根目录)
当然
我们可以在路径处写
android_assets/,它代表安装包内assets目录
如果写android_assets/res/web.html
就是安装包内assets目录里res文件夹里的web.html文件
除此以外
还有content://和ftp://等用法
4楼
钻需Kill 2022-1-21
除了常规链接
我们还可以用us实现加载js(全称JavaScript)
用法①:
us(浏览器控件,"url","javascript:"+js代码)
[滑稽]当然
我们也可以先使用
hsas(浏览器控件,true)开启js交互
然后用has(浏览器控件,js代码)来加载js[滑稽][OK]

注意:这两种加载方法都有弊端
如:使用方法①来加载js代码,要求js代码只有一行(注意js代码和裕v3不同,它的语法可以使所有代码压缩成一行)
使用方法②来加载js,可能会有无法加载的问题,可能是注释造成,或者语法造成
这里我推荐用方法①去加载js
不过你需要手动处理一下有换行的js
//这里给一个我处理换行js的实例
.先去除js中大量的无用换行
sr(js,"\n\n","\n",js)
sr(js,"\n\n","\n",js)
sr(js,"\n\n","\n",js)
sr(js,"\n\n","\n",js)
.转换换行为分号
sr(js,"\n",";",js)
.处理可能导致解释器异常的警告
sr(js,"var ;","var ",js)
sr(js,"var;","var",js)
sr(js,"const ;","const ",js)
sr(js,"const;","const",js)
sr(js,";=","=",js)
//有位大佬告诉我双分号不影响什么,但是我这里实际测试还是替换掉最好
sr(js,";;",";",js)
.处理异常括号
sr(js,"{;","{",js)
sr(js,"(;","(",js)
.处理异常符号
sr(js,"\,;","\,",js)
sr(js,";\,","\,",js)

//使用这种方法处理完换行js基本上大部分js都能正常使用方法①加载,如果还不能,那就是这个js作者不咋滴,写的完全不规范[滑稽][心碎]
5楼
钻需Kill 2022-1-21
2.浏览器相关的属性操作
[滑稽][OK]
这里相比于上面就稍微进阶一点
当然js加载部分不算,能用js完成许多浏览器操作,之后单开一个帖子讲
us(浏览器控件,"url",网址)
//设定浏览器加载的网址(同理可以用ug获取加载的网址)
ug(浏览器控件,"title",标题)
//获取浏览器加载网址的标题(这里不是所有时刻都能获取到,后面讲事件的时候单独说一下)
gvs(浏览器控件ID,浏览器控件对象)
//gvs用来获取控件对象
java(icon,webView,浏览器控件对象,"android.webkit.WebView.getFavicon")
//使用java代码获取浏览器加载的网站的图标(同上,不是所有时刻都能获取加载的图标,讲到事件的时候单独讲)
//这里icon赋值为获取到的图标
//可以使用us(图像控件,"src",icon)直接设置图标
6楼
钻需Kill 2022-1-21
3.浏览器相关的事件
浏览器控件的控件事件
有个独特的"浏览器事件"点击后有几个浏览器相关事件[滑稽][OK]
逐个来讲解一下:
①加载过程进度改变
你可以理解为正在加载时会执行的事件(直到加载进度为100后才会停止该事件的加载,在这期间加载进度每改变一次都会执行一次该事件)
图二展示了它的所有系统赋值[滑稽]
②加载网址之前
该事件字面意思,加载网址之前执行的事件
如果你填写了该事件
那么在没有处理的情况下
浏览器会停止继续加载网址
③网页加载开始时
字面意思,网页开始加载时执行该事件
图三展示了几个特殊的系统赋值
//前面之所以用java获取图标,是因为我的浏览器开始制作的时候还没有这个网站图标的赋值,当时只能用java获取,所以顺手把java获取图标的方法也教给你们
//网站开始加载时有时依然不能使用java获取图标(获取到的可能是空的)
④网页加载完成时
这个事件最具有开发潜力
js加载最好在网页加载完成时事件写入
⑤网页加载失败时
当网页加载失败会执行该事件
图四展示了几个特殊的系统赋值
如果你觉得安卓原生webview的加载失败很难看,你可以使用这些系统赋值自己写一个界面代替
⑥文件下载时
图五展示了几个特殊的系统赋值
当文件下载时会执行该事件

7楼
钻需Kill 2022-1-21
似乎没什么人[滑稽][心碎]
看来浏览器不是大家关注的目标啊[滑稽][心碎][心碎]
8楼
僵尸之王 2022-1-21
你这浏览器能干嘛
9楼
钻需Kill 2022-1-21
◆◆获取网站标题和网站图标补充
获取网站标题:
浏览器控件-浏览器事件-加载进度改变
f(st_nS>=30)
{
ug(st_vW,"title",网站标题)
}
//该事件下获取网站标题最快最好用

获取网站图标:
方法①:
浏览器控件-浏览器事件-网页开始加载时
//系统赋值st_bP就是网站图标变量
方法②:
浏览器控件-浏览器事件-加载进度改变时
gvs(浏览器控件ID,浏览器控件对象)
//gvs用来获取控件对象
java(icon,webView,浏览器控件对象,"android.webkit.WebView.getFavicon")
//使用java代码获取浏览器加载的网站的图标
//这里icon赋值为获取到的图标变量
[滑稽]可能效率不是最好的,有时获取到的是空图标
(如果你在该事件下无法获取图标变量,或获取到的图标变量是上一个网站的图标,那么你的webview版本太老旧了,一般新设备的webview会自动更新,想更新你的webview可以到酷某,某安搜索webview在评论区找对应的下载链接)
10楼
钻需Kill 2022-1-21
◆◆对小白的系统术语解释
如果你理解这些系统术语可以跳过本条
1.什么是控件对象?
你的控件ID相当于控件的代号,你可以通过代号找到它,一般来说,涉及到java操作时最好使用gvs通过代号获取到这个控件本身的唯一标识,通过唯一标识不论你的控件是否在动态界面或者任何情况,都能直接操作控件

2.什么是系统赋值
是该事件在执行时会由系统给你赋值的变量,通常是与该事件有关的、在执行该事件时可能会用到的,方便你的开发

评论

登录后才可发表内容
  • 主题

    11

  • 帖子

    123

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0555s Mem:2072Kb