首页 > 其他分享 >Flutter配置Webview内嵌web

Flutter配置Webview内嵌web

时间:2024-01-25 22:57:07浏览次数:26  
标签:web keystoreProperties upload gradle maven build Webview Flutter android

IntelliJ IDEA 开发实战

1、根据官网下载指定版本并且配置好环境变量

https://docs.flutter.dev/get-started/install/windows

2、idea工具开发工具中,下载插件flutter和dart

3、pubspec.yaml中添加依赖

...
dependencies:
  flutter:
  #
  english_words: ^3.1.0
  flutter_inappwebview: ^5.3.2
...

 

4、整个工程的build.gradle文件中gradle插件的版本不匹配java版本时,可以修改gradle版本

dependencies {
    classpath "com.android.tools.build:gradle:4.1.1" //匹配jdk8
 
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

5、发布android的app,需要申请upload keystore

//macOs or linux
  keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

//wins
  keytool -genkey -v -keystore c:\Users\USER_NAME\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

  在项目路径下[project]/android/key.properties创建key.properties文件并写入

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=upload
storeFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks>

  接着打开[project]/android/app/build.gradle的文件,在android的配置前插入配置

   //新写入的key配置
   def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }
    
   //这个已经存在    
   android {
         ...
   }

  然后找到buildTypes的配置的行数,替换以下配置

   signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

  

6、设置gradle加载,File->Settings->Language & Framworks->Flutter,配置完之后,重启gradle会一直下载jar包

 下载gradle之后,使用国内仓库地址,D:\gradle-7.5\init.d下创建init.gradle文件,allowInsecureProtocol 是允许http的仓库,否者会报错

allprojects {
    repositories {
		
        maven { url 'file:///D:/Java/maven/repository'}
        mavenLocal()
        maven { allowInsecureProtocol = true;name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
        maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/";allowInsecureProtocol=true }
        mavenCentral()
    }

    buildscript { 
        repositories { 
            maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
            maven { allowInsecureProtocol = true;name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
            maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

  

7.直接查看build/app/outputs/apk/flutter-apk文件夹下的apk文件,若无则可以选择idea的build -> Flutter -> Build APK 

 

区分32位跟64位处理器在项目,v7a是32位(目前主流android机)

Enter cd [project]
Run flutter build apk --split-per-abi
(The flutter build command defaults to --release.

还需要在 android/src/main/AndroidManifest.xml中加入用户权限

...
</application>
<!--用户权限-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</manifest>

 

8.接着使用第三方插件,开发内嵌webview

查看教程 https://blog.csdn.net/u013038616/article/details/119034807

本人用的是InAppWebView,他的官网 https://inappwebview.dev/docs/in-app-webview/basic-usage/

 

标签:web,keystoreProperties,upload,gradle,maven,build,Webview,Flutter,android
From: https://www.cnblogs.com/zrl66/p/16272671.html

相关文章

  • AI-WEB-1.0靶机
    AI-WEB-1.0靶机情报收集扫描靶机,打开网站提示NotevenGooglesearchmycontents!dirbhttp://192.168.218.139扫描网站进入爬虫协议User-agent:*Disallow:Disallow:/m3diNf0/Disallow:/se3reTdir777/uploads/进入两个网站都报错,dirb再次扫描两个网站打......
  • Python web crawler(2.1)多循环嵌套练习
    写个函数,传入(书名:book,标题:tittle,内容:content),要求在book文件夹下(不存在则创建),创建每个tittle.txt文件,写入content内容importosdefsave_to_file(folder_book,title,content):#如果文件夹不存在,则创建ifnotos.path.exists(folder_book):os.makedirs(......
  • Web前端性能优化
    性能优化是前端开发无法避免的点,给客户带去良好的访问体验也是开发人员必须关注的问题。前端性能优化大体分为两个部分:代码优化、资源及其他优化,本文主要记录资源及其他优化要怎么做。1、CSS样式文件在页面头部引入,Javascript文件在页面尾部引入页面加载单线程可能会阻塞页面的......
  • websocket 包括心跳机制
    https://zhuanlan.zhihu.com/p/6643681141.创建websocket对象,初始化创建对象,开启、onmsg、关闭开启,开始心跳检测发送传递信息(ifwebsocket对象存在,且处于open状态onmsg,接收服务器传送过来的信息,进行业务操作关闭,销毁心跳检测,清除心跳......
  • APISIX同时代理websocket和http请求 websocket无法正常工作
    1.配置了一个路由同时代理websocket和http请求 2.打开了websocket支持,websocket还是无法工作  3.定位3.1通过postman分别走apisix和不经过apisix建立websocet连接,发现经过apisix也能成功建立连接,但是10秒左右就自己断开了。  3.2思考3.3决定试一下是否和超时配置......
  • 前端工程化解决方案webpack使用小结
    前端工程化解决方案webpack,模块化、组件化、规范化、自动化,使得前端开发更加高效。功能:代码压缩混淆、处理浏览器端js的兼容性、以模块化的方式处理项目中的资源webpack插件:clean-webpack-plugin清除dist文件夹之前打包生成的文件使用步骤:先安装 再在webpac......
  • miniweb开源的迷你HTTP服务器端软件
    前言全局说明MiniWeb是一个用C语言写成的HTTP服务器端软件,具有资源占用少、响应快速、跨平台(POSIX、*nux、Windows)等优点,支持常用的GET、POST算法及音/视频流媒体应用,可用来构建WEBSITE站点或VOD服务器等。MiniWeb是一个针对嵌入式应用而开发的微型WebServer,它占用资源少,工......
  • Web server failed to start. Port 8080 was already in use.
    场景上午在启动程序时,发现端口被占用,启动失败了***************************APPLICATIONFAILEDTOSTART***************************Description:Webserverfailedtostart.Port8080wasalreadyinuse.Action:Identifyandstoptheprocessthat'slisteni......
  • 手写web框架
    自定义web框架框架功能"""功能视图用户访问指定url获取数据库数据,并返回到页面"""wsgiref模块#01文件结构"""urls.py 路由与视图函数对应关系views.py 视图函数(后端业务逻辑)templates文件夹 专门用来存储html文件"""#按照功能的不同拆分之后......
  • Django学习第一天-Flask_Web前端HTML部分
    目录1.day11.快速开发网站2.浏览器能识别的标签2.1编码2.2title2.3标题2.4div和span2.5超链接2.6图片小结2.7列表2.8表格2.9input系列(7个)2.10下拉框2.11多行文本案例:用户注册2.12网络请求目的:开发一个平台(网站)-前端开发:HTML、CSS、JavaScript-Web框架:接收并处理请求......