50.HarmonyOS鸿蒙系统 App(ArkUI)web组件实现简易浏览器

50.HarmonyOS鸿蒙系统 App(ArkUI)web组件实现简易浏览器

配置网络访问权限:

 

跳转任务:

Button('转到')
          .onClick(() => {
            try {

              // 点击按钮时,通过loadUrl,跳转到www.example1.com
              this.webviewController.loadUrl(this.get_url);

            } catch (error) {
              console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
            }
          })

 前进代码:

Button('-->>').onClick(()=>{
          if (this.webviewController.accessForward())
          {
            this.webviewController.forward();
            return true;
          }
        })

后退代码:

 Button('<<--').onClick(()=>{
          if (this.webviewController.accessBackward())
          {
            this.webviewController.backward();
            return true;
          }


        })

项目代码:

// xxx.ets
import web_webview from '@ohos.web.webview';

@Entry
@Component

struct WebComponent {
  webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  @State get_url:string = "www.cnblogs.com/"
  @State cnblogs:string = 'www.cnblogs.com/'
  @State csdn:string = 'txwtech.blog.csdn.net'
  @State baidu:string = 'www.baidu.com'

  controller: TextInputController = new TextInputController()
  build() {
    Column() {
      Text('简易浏览器demo')
        .backgroundColor(Color.Blue)
      .fontColor(Color.White)
      .fontSize(28)
      Row()
      {
        Text('地址:')
        TextInput({text: this.get_url, placeholder: '请输入网址...', controller: this.controller})
          .onChange((value:string)=>{
            this.get_url = value
          })
          .backgroundColor(Color.Gray)


      }
      Row()
      {
        Button("cnblogs").onClick(()=>{
          this.get_url = this.cnblogs
        })
        Button('csdn').onClick(()=>{
          this.get_url = this.csdn
        })
        Button('baidu').onClick(()=>{
          this.get_url = this.baidu
        })
      }
      Row()
      {
        Button('<<--').onClick(()=>{
          if (this.webviewController.accessBackward())
          {
            this.webviewController.backward();
            return true;
          }


        })
        Button('  ')
        Button('  ')
        Button('转到')
          .onClick(() => {
            try {

              // 点击按钮时,通过loadUrl,跳转到www.example1.com
              this.webviewController.loadUrl(this.get_url);

            } catch (error) {
              console.error(`ErrorCode: ${error.code},  Message: ${error.message}`);
            }
          })
        Button('  ')
        Button('  ')
        Button('-->>').onClick(()=>{
          if (this.webviewController.accessForward())
          {
            this.webviewController.forward();
            return true;
          }
        })
      }.borderColor(Color.Orange)
      .backgroundColor(Color.Grey)




      // 组件创建时,加载www.example.com
      Web({ src: '', controller: this.webviewController})
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/555735.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Root mapping definition has unsupported parameters: [all : {analyzer=ik_max_wor

你们好&#xff0c;我是金金金。 场景 我正在使用Springboot整合elasticsearch&#xff0c;在创建索引(分词器) 运行报错&#xff0c;如下 排查 排查之前我先贴一下代码 import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; // 注意这个包SpringBootTe…

Linux中如何安装ImageMagick及其常规使用命令

在Linux中安装ImageMagick可以通过包管理工具进行安装。具体步骤如下&#xff1a; 打开终端&#xff08;Terminal&#xff09;。 使用以下命令更新系统软件包列表&#xff1a; sudo apt update使用以下命令安装ImageMagick&#xff1a; sudo apt install imagemagick安装完…

物理机安装centos7并配置基本环境,网络配置,docker配置

1.首先下载镜像Download 2.下载UltraISO 安装docker 第1步&#xff1a;卸载当前版本docker yum erase docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \do…

[生活][杂项] 如何正确打开编织袋

编织袋打开的正确姿势 面对单线分离右边的线头&#xff0c;然后依次拉开即可

YAML教程-1-基础入门

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go YAML简介 YAML&#xff08;YAML Aint Markup Language&#xff09;是一种用于数据序列化的人类可读格式。它广泛用于配置文件、数据交换、持续集成/持续部署&#xff08;CI/CD&#xff09;等领域。YAML的设计目标…

注意,把Python库安装在一个环境里,可能会“非常危险”!

如果说谁写Python不用第三方库&#xff0c;我敬他是条汉子。如今到处是轮子的时代&#xff0c;Python第三方库管理成了开发者们头疼的问题。 可能在看这篇文章的很多人&#xff0c;都没用过Python虚拟环境&#xff0c;不知道安装Python库需要考虑版本兼容问题。 那么把所有要…

基于SpringBoot的健身房管理系统

一.前言 本系统用了 Sping Data JPA 这一不常用的数据库框架&#xff0c;是一个值得学习研究的点。 本项目用户名&#xff1a;admin 密码: admin123 方可进入。项目源码在文章开头&#xff0c;下载到本地导入IDEA&#xff0c;修改配置文件中数据库连接信息后&#xff0c;导入项…

字段名称导致mybatisplus自带方法报错.BadSqlGrammarException: ### Error querying database. C

今天在建一个数据表之后&#xff0c;在springboot中使用了mybatisplus代码生成工具生成了java相关代码&#xff0c;在查询的时候&#xff0c;使用的是list()方法查询&#xff0c;发现居然会报错&#xff0c;找了好久。 org.springframework.jdbc.BadSqlGrammarException: ###…

锁策略和死锁问题

锁策略 乐观锁 vs 悲观锁重量级锁 vs 轻量级锁自旋锁 vs 挂起等待锁读写锁 vs 互斥锁公平锁 vs 非公平锁可重入锁 vs 不可重入锁死锁死锁产生的必要条件如何简单的解决死锁问题 小结 这里不是描述的某个特定锁,而是描述的锁的特性,描述的是"一类锁". 乐观锁 vs 悲观…

人到中年三两事儿

人到中年&#xff0c;常常伴随着一系列的焦虑和烦恼。这些焦虑可能源自对工作的不确定性、对未来的担忧、对家庭责任的增加&#xff0c;或是对个人成就的反思。在这个年纪&#xff0c;我们可能会发现自己站在人生的十字路口&#xff0c;面临着重要的选择和决策。 首先&#xff…

数智时代的AI人才粮仓模型解读白皮书(2024版)

来源&#xff1a;极客邦 自 2023 年上半年起&#xff0c;ChatGPT 等大模型技术蓬勃发展&#xff0c;AI 技术不断突破边界&#xff0c;展现 出惊人的潜力和发展速度。从早期的逻辑推理、专家系统&#xff0c;到如今的深度学习、神经网络&#xff0c; AI 技术显著缩小了科学与实…

【面试经典 150 | 二分查找】搜索旋转排序数组

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;二分查找 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等内容进行…

Redis中的Lua脚本(二)

Lua脚本 创建排序辅助函数 为了防止带有副作用的函数令脚本产生不一致的数据&#xff0c;Redis对math库的math.random函数和math.randomseed函数进行了替换。对于Lua脚本来说&#xff0c;另一个可能产生不一致数据的地方是哪些带有不确定性质的命令&#xff0c;比如对于一个集…

STM32串口通信

一、串口发送 1.初始化引脚 void Serial_Init(uint32_t BaudRate) {RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA ,ENABLE );RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 ,ENABLE );GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP…

python自动化之网易自动点歌

这个代码是是使用的pyautogui库和pyperclip库完成的&#xff0c;这个库是开源的地址如下&#xff1a;https://github.com/asweigart/pyautogui这里详细的用法想学习的可以到这看看 下面是代码&#xff1a; import pyautogui import subprocess import pyperclip import time i…

如何进行 ICP 备案/公安部联网备案

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…

安装jmeter和ant

安装jmeter和ant 安装java环境 安装jdk和jre 下载Java SE Development Kit 8 Java SE subscribers will receive JDK 8 updates until at least December 2030. 选择指定包进行安装&#xff0c;如windows 共享账号参考&#xff1a;Oracle官网 账号及密码 目前官网下载低…

Java程序生成可执行的exe文件 详细图文教程

1.Java编辑器&#xff0c;如&#xff1a;idea、eclipse等&#xff0c;下载地址&#xff1a;IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrainshttps://www.jetbrains.com/idea/2.exe4j&#xff0c;下载地址&#xff1a;ej-technologies - Java APM, Java Prof…

吴恩达<用于LLM应用程序开发的LangChain> L1-Model_prompt_parser

问题预览/关键词 课程地址如何获取openAI的API Key如何根据日期设置不同模型?如何调用OpenAI的API?如何使用OpenAI的API&#xff1f;langchain如何抽象OpenAI的API接口&#xff1f;langchain如何创建提示词模板并查看模板内容&#xff1f;langchain如何使用提示词模板生成提…

使用Google reCAPTCHA防止机器注册

本文作者&#xff1a;陈进坚 博客地址&#xff1a;https://jian1098.github.io CSDN博客&#xff1a;https://blog.csdn.net/c_jian 简书&#xff1a;https://www.jianshu.com/u/8ba9ac5706b6 联系方式&#xff1a;jian1098qq.com 环境要求 能翻墙的电脑域名 验证原理 在谷歌…