aardio 文档
aardio 范例: WebView2 - 模拟手机浏览器(复制二维码自动打开)
import fonts.fontAwesome;
import web.view;
import win.ui;
/*DSG{{*/
var winform = win.form(text="WebView2 - 模拟手机浏览器(复制二维码自动打开)";right=452;bottom=770;bgcolor=0xFFFFFF;border="thin";max=false)
winform.add(
btnGo={cls="plus";left=417;top=7;right=447;bottom=33;align="left";border={bottom=1;color=0xFF969696};color=0x3C3C3C;dr=1;dt=1;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=8}};iconText='\uF1D8';notify=1;textPadding={left=25};z=2};
custom={cls="custom";text="自定义控件";left=8;top=44;right=441;bottom=767;db=1;dr=1;dt=1;z=1};
editUrl={cls="plus";left=6;top=7;right=416;bottom=33;align="right";border={bottom=1;color=0xFF969696};dr=1;dt=1;editable="edit";font=LOGFONT(h=-13);notify=1;textPadding={top=3;bottom=3};z=3}
)
/*}}*/
// 创建 WebView2 控件,模拟手机浏览器。
var wb = web.view(winform.custom,{
startArguments = {
acceptLang = "zh-CN";//Accept-Language 请求头,一般没必要改
userAgent = "Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/115.0.5790.166"
};
userDataDir = _STUDIO_INVOKED ? io.appData("/aardio/webview2/user-data/ide/example/emulation")
})
// 启用 CDP 的 Emulation 域
wb.cdp("Emulation.enable");
// 模拟手机设备指标
wb.cdp("Emulation.setDeviceMetricsOverride", {
width = winform.custom.width; // 屏幕宽度
height = winform.custom.height; // 屏幕高度
deviceScaleFactor = 1; // 设备像素比
mobile = true; // 声明为移动设备
touch = true; // 启用触摸事件模拟
});
// 启用 CDP 的 Network 域
wb.cdp("Network.enable");
// web.view( WebView2 ) 自定义 HTTP 请求头
wb.cdp("Network.setExtraHTTPHeaders", {
headers = {
["Sec-CH-UA-Mobile"] = "?1"; // "?1" 表示 true
["Sec-CH-UA-Platform"] = '"Android"'; // 注意平台名称需要用双引号包围
}
});
wb.go("https://mp.weixin.qq.com/s/qgzV0OHXTgoYy6Pdbecnvw");
winform.editUrl.setFocus();
winform.editUrl.editBox.onOk = function(ctrl,alt,shift){
winform.btnGo.oncommand();
return false;
}
winform.btnGo.skin({
color={
active=0xFF00FF00;
default=0xFF3C3C3C;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.btnGo.oncommand = function(){
wb.go(winform.editUrl.text);
}
import zbar;
import win.clip.bitmap;
import win.clip.viewer;
winform.clipViewer = win.clip.viewer(winform);
var scanner = zbar.scanner();
scanner.config('qrcode.enable');
winform.clipViewer.onDrawClipboard = function(){
var bmp = win.clip.bitmap.read()
if(bmp){
scanner.scanBitmap(bmp,function(typeName,data){
//二维码应当总是使用 UTF-8 编码
if(!string.isUtf8(data)){
data = string.fromto(data,936,65001);
}
if(inet.url.is(data,-1/*_URLIS_APPLIABLE*/)){
wb.go(data);
}
})
}
}
winform.clipViewer.onDrawClipboard();
winform.show();
win.loopMessage();
Markdown 格式