本发明涉及计算机,特别涉及一种flutter_web运行方法、装置、设备及介质。
背景技术:
1、使用flutter侧开发的应用程序,可以编译成app在手机端运行,也可以编译成web端在浏览器上运行,但是在编译成web在浏览器本地运行时,通常会存在跨域问题,如本地浏览器运行的url为127.0.0.1:8080/index.html,但是web请求的数据url可能为:baidu.com/api/list,这时候我们在浏览器本地运行的时候,就会发现数据请求不到,页面展示不出来。目前市面上通用方案大约有以下几种:浏览器关闭跨域限制;服务端接口层取消跨域限制
2、以上方案在通过html、css、js编写的web应用是可以解决跨域问题,但是在flutter_web测是有他们的局限性的:
3、flutter_web一般是通过flutter编写的程序,编译出来的,但是flutter编译的程序本身又有跨平台性,所以一般是在一个工程即编译成app,又编译成web,但是在编写代码时,app侧是不存在跨域问题的,可以请求不同业务的请求域名,但是这时候编译成的web就会在不同的域名间存在跨域问题
4、通过关闭浏览器跨域限制,需要执行浏览器命令或者设置打开,缺少了数据安全性。服务端接口层取消跨域限制。跨域本身就是为了增加浏览器访问的安全性,取消接口的跨域限制,增加了服务数据的危险性,通常服务端不会这样去做。因此,如何解决flutter_web本地运行调试跨域问题以及多域名访问跨域问题是关键。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种flutter_web运行方法、装置、设备及介质,能够通过代理服务的方式访问本地web,无需改变原来的项目,就能自动实现代理访问。其具体方案如下:
2、第一方面,本申请公开了一种flutter_web运行方法,应用于通过编译flutter工程生成的web应用,包括:
3、获取代理服务器的ip地址和端口号;
4、创建初始接口数据请求,并将所述初始接口数据请求中的域名替换为所述ip地址和所述端口号,以得到相应的替换后接口数据请求;
5、将所述替换后接口数据请求发送至所述代理服务器,以便所述代理服务器将所述替换后接口数据请求发送至服务端,并接收所述服务端发送的与所述替换后接口数据请求对应的返回数据;
6、接收所述代理服务器转发的所述返回数据。
7、可选的,所述获取代理服务器的ip地址和端口号之前,还包括:
8、通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入预设资源目录下。
9、可选的,所述获取代理服务器的ip地址和端口号,包括:
10、通过对所述预设资源目录发起读取请求,以获取所述预设资源目录中保存的所述代理服务器的ip地址和端口号。
11、可选的,所述通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入预设资源目录下,包括:
12、通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入所述代理服务器的静态资源访问目录下的子目录。
13、可选的,所述通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入所述代理服务器的静态资源访问目录下之前,还包括:
14、将web应用的本地资源目录作为所述代理服务器的静态资源访问目录下的子目录,以便所述代理服务器将自身的所述ip地址和所述端口号下发至所述web应用的本地资源目录进行保存。
15、可选的,所述获取代理服务器的ip地址和端口号之前,还包括:
16、执行对flutter工程的编译操作以生成所述web应用,并实时监测所述编译操作是否完成;
17、若监测到所述编译操作已经完成,则触发所述代理服务器的自动启动,以便所述代理服务器在启动完毕后执行所述将自身的所述ip地址和所述端口号下发至所述web应用的本地资源目录进行保存的步骤。
18、第二方面,本申请公开了一种flutter_web运行方法,应用于代理服务器,包括:
19、将自身的ip地址和端口号传输至通过编译flutter工程生成的web应用,以便所述web应用将自身产生的初始接口数据请求中的域名替换为所述ip地址和所述端口号,以得到相应的替换后接口数据请求;
20、将所述替换后接口数据请求发送至服务端,以便所述服务端将与所述替换后接口数据请求对应的返回数据发送至所述代理服务器;
21、接收所述返回数据,并将所述返回数据发送至所述web应用。
22、第三方面,本申请公开了一种flutter_web运行装置,应用于通过编译flutter工程生成的web应用,包括:
23、地址和端口号获取模块,用于获取代理服务器的ip地址和端口号;
24、数据请求获取模块,用于创建初始接口数据请求,并将所述初始接口数据请求中的域名替换为所述ip地址和所述端口号,以得到相应的替换后接口数据请求;
25、数据请求发送模块,用于将所述替换后接口数据请求发送至所述代理服务器,以便所述代理服务器将所述替换后接口数据请求发送至服务端,并接收所述服务端发送的与所述替换后接口数据请求对应的返回数据;
26、返回数据接收模块,用于接收所述代理服务器转发的所述返回数据。
27、第四方面,本申请公开了一种电子设备,包括:
28、存储器,用于保存计算机程序;
29、处理器,用于执行所述计算机程序以实现前述的flutter_web运行方法。
30、第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的flutter_web运行方法。
31、由上可知,本申请首先获取代理服务器的ip地址和端口号;创建初始接口数据请求,并将所述初始接口数据请求中的域名替换为所述ip地址和所述端口号,以得到相应的替换后接口数据请求;将所述替换后接口数据请求发送至所述代理服务器,以便所述代理服务器将所述替换后接口数据请求发送至服务端,并接收所述服务端发送的与所述替换后接口数据请求对应的返回数据;接收所述代理服务器转发的所述返回数据。可见,本申请提供了一种flutter_web运行,能够通过代理服务的方式访问本地web,无需改变原来的项目,就能自动实现代理访问;无需改变原有代码,就可以直接在本地web端运行访问,并可以通过代理服务实现多域名访问,进而可以实现flutter web端快速调试流程。
1.一种flutter_web运行方法,其特征在于,应用于通过编译flutter工程生成的web应用,包括:
2.根据权利要求1所述的flutter_web运行方法,其特征在于,所述获取代理服务器的ip地址和端口号之前,还包括:
3.根据权利要求2所述的flutter_web运行方法,其特征在于,所述获取代理服务器的ip地址和端口号,包括:
4.根据权利要求2或3所述的flutter_web运行方法,其特征在于,所述通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入预设资源目录下,包括:
5.根据权利要求4所述的flutter_web运行方法,其特征在于,所述通过所述代理服务器将所述代理服务器自身的所述ip地址和所述端口号写入所述代理服务器的静态资源访问目录下之前,还包括:
6.根据权利要求5所述的flutter_web运行方法,其特征在于,所述获取代理服务器的ip地址和端口号之前,还包括:
7.一种flutter_web运行方法,其特征在于,应用于代理服务器,包括:
8.一种flutter_web运行装置,其特征在于,应用于通过编译flutter工程生成的web应用,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的flutter_web运行方法。