首页 > 其他分享 >ArkTs通过Web组件和H5交互

ArkTs通过Web组件和H5交互

时间:2024-09-19 14:49:25浏览次数:12  
标签:Web ArkTs console log web H5 window call import

arkts代码

// xxx.ets
import web_webview from '@ohos.web.webview';
import { router } from '@kit.ArkUI';
import { call } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';

class testClass {
  constructor() {
  }

  test(): string {
    return 'ArkTS Hello World!';
  }
}

@Entry
@Component
struct Index2 {
  webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  // 声明需要注册的对象
  @State testObj: testClass = new testClass();

  build() {
    Column() {
      // web组件加载本地index.html页面
      Web({ src: 'http://172.19.176.1:3000/', controller: this.webviewController })// 将对象注入到web端
        .javaScriptProxy({
          object: {
            callBack: (r: object) => {
              // let isSupport = call.hasVoiceCapability();
              if (true) {
                // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
                call.makeCall("4008877780", (err: BusinessError) => {
                  if (!err) {
                    console.log("make call success.");
                  } else {
                    console.log("make call fail, err is:" + JSON.stringify(err));
                  }
                });
              } else {
                // promptAction.showToast({ message: "无语音通话功能" })
              }
            }
          },
          name: "callBackToApp",
          methodList: ['callBack'],
          controller: this.webviewController
        })
        .onControllerAttached(() => {
          //设置自定义UserAgent
          if (true) {
            this.webviewController.setCustomUserAgent("Mozilla/5.0 (Phone; Android; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile")
          }
        })
        .domStorageAccess(true)//开启文档对象模型存储接口
      /*
        .databaseAccess(true)// 是否开启数据库存储API权限
        .mixedMode(MixedMode.All)// 允许加载HTTP和HTTPS混合内容
        .onRefreshAccessedHistory(() => {
          let history = this.webviewController.getBackForwardEntries()
          //this.historyCurrIndex = history.currentIndex
        })*/

    }
  }
}

h5代码

<template>
  <div class="mb-4">
    <button @click="greet">点击事件</button>
  </div>

</template>

<script>

import {onBeforeMount} from "vue";
/*const onRowClick = (record: object, event:any)=>{
  console.log(record,'record',event)
  window.callBackToApp.callBack(record)
}*/
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  setup() {
    onBeforeMount(()=>{
      console.log(window)
      console.log("1242131231554")
      /*// 获取表头
      if(typeof window?.callBackToApp?.getCloumn === "function"){
        JSON.parse(window.callBackToApp?.getCloumn()) || []
      }
      console.log(11111)*/
    })
  },
  methods:{
    greet(){
      console.log("方法执行")
      window.callBackToApp.callBack()
    }
  }
}




</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}

ul {
  list-style-type: none;
  padding: 0;
}

li {
  display: inline-block;
  margin: 0 10px;
}

a {
  color: #42b983;
}
</style>

标签:Web,ArkTs,console,log,web,H5,window,call,import
From: https://blog.csdn.net/gjg___gg/article/details/142360445

相关文章

  • 【转】[C#] WebAPI 防止并发调用二(更多)
    转自:阿里的通义灵码接上篇:https://www.cnblogs.com/z5337/p/18181574在C#中防止接口的并发访问(即确保同一时间内只有一个线程能够访问某个资源或方法),可以通过多种方式实现。这里列出一些常见的方法:1.使用 lock 语句lock 是一种常用的同步原语,用于保护对共享资源的访问......
  • 即时通讯框架MobileIMSDK的H5端开发快速入门
    ► 相关链接:① MobileIMSDK-H5端的详细介绍② MobileIMSDK-H5端的开发手册new(* 精编PDF版)一、技术准备您是否已对Web端即时通讯技术有所了解?1)新手入门贴:史上最全Web端即时通讯技术原理详解2)Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE您需要对WebSocket技......
  • H5适配以及兼容问题---转存自掘金--lzg9527
     vue知识体系之基础入门篇JS基础总结(1)——数据类型JS基础总结(2)——原型与原型链JS基础总结(3)——作用域和闭包JS基础总结(4)——this指向及call/apply/bindJS基础总结(5)——JS执行机制与EventLoopdhtml篇常用的meta属性设置meta对于移动端的一些特殊属性,可根据需要自行......
  • 基于Web宠物用品管理系统---附源码78346
    目录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2系统分析2.1可行性分析2.2系统流程分析2.2.1系统开发流程2.2.2用户登录流程2.2.3系统操作流程2.2.4添加信息流程2.2.5修改信息流程2.2.6删除信息流程2.3 系......
  • vue打包优化——使用webpack-parallel-uglify-plugin并行压缩JavaScript
    1、安装插件npminstallwebpack-parallel-uglify-plugin--save-dev我用的install命令,其他命令大同小异,大家百一下就行2、配置vue.config.js首先引入插件:constParallelUglifyPlugin=require('webpack-parallel-uglify-plugin');这里注意我用的vue-cli构建的项目,所以修改w......
  • DevExpress中文教程:如何将WinForms数据网格连接到ASP. NET Core WebAPI服务?
    日前DevExpress官方发布了DevExpressWinForms的后续版本——将.NET桌面客户端连接到安全后端WebAPI服务(EFCorewithOData),在本文中我们将进一步演示如何使用一个更简单的服务来设置DevExpressWinForms数据网格。P.S:DevExpressWinForms拥有180+组件和UI库,能为WindowsForms......
  • uni-app在微信小程序、H5 和 App 中实现扫码功能
    在uni-app中实现扫码功能,可以通过调用不同平台提供的扫码API来实现。下面分别介绍在微信小程序、H5和App中如何实现扫码功能。1.微信小程序在微信小程序中,你可以使用wx.scanCode接口来实现扫码功能。示例代码在你的.wxml文件中,添加一个按钮:<buttonbindtap......
  • Java Web处理HTTP请求并返回响应
    在JavaWeb开发中,处理HTTP请求并返回响应是常见的任务。本文将深入探讨如何使用Java来构建一个健壮的响应机制,特别是针对返回值的处理。我们将从最基本的Servlet开始,逐步过渡到使用SpringBoot框架来实现更复杂的响应逻辑。同时,本文将包含示例代码,以便读者能够更好地理解每个概念。......
  • 鸿蒙(HarmonyOS)--编程语言-ArkTS 语言基础
    目录 ArkTS基础知识1声明1.1变量声明1.2常量声明1.3自动类型推断 2类型2.1基本类型 2.1.1 string2.1.2  number2.1.3boolean2.2引用类型2.2.1Object类型 2.2.2 Array类型2.2.3Void类型 2.3枚举类型 Enum2.4联合类型 Union 2.5 类型别......
  • 使用gitee的webhook实现提交代码后自动部署项目
    独立站原文业务背景giteeAction付费,gitPages也停止了服务,没办法想搞一个国内服务器的独立站只能自己动手了,看了gitee提供了webhook......