# aardio 范例: WebView2 - 模拟手机浏览器（复制二维码自动打开）

```aardio
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();
```