Android与H5(Vue)交互

news2024/11/19 7:43:14

Android与H5互调

实现效果:
JS调用Android方法实现dialog弹窗,Android点击弹窗确定/取消按钮调用JS方法,在H5界面展示传递的参数。

Vue准备:

执行 npm run serve 命令启动项目,启动成功后会在命令行看到两个地址,
在这里插入图片描述

Vue代码:

<template>
    <div>
        <section>
            <button type="button" @click="showDialog">点击调用dialog</button>
            <button type="button" @click="useCamera">点击调用相机</button>
        </section>
        <hr/>
        <p>{{msg}}</p>
    </div>

</template>

<script>
export default {
    name: "About",
    data() {
        return {
            msg: "android 返回内容"
        };
},
    mounted () {
        window.callByAndroidOneParam = this.callByAndroidOneParam
    },
    methods: {
    showDialog () {
        // window.console.log("Android");
        if (window.Android != null && typeof (window.Android) != "undefined") {
        window.Android.showDialog();
        } else {
        alert(typeof (window.android));
        }
    },
    callByAndroidOneParam(msg1) {
        alert("Js收到消息:" + msg1);
        this.msg = msg1
        return this.msg
    },
    useCamera () {
            // window.console.log("Android");
            if (window.Android != null && typeof (window.Android) != "undefined") {
            window.Android.useCamera(111);
            } else {
            alert(typeof (window.android));
            }
        },
    
},
        
}
</script>

注意:vue让app能调入js方法,需要将方法赋给window;因为vue将js进行封装操作

Android中代码:
注入到JS里的对象接口:

public class AndroidInterface {
    Context context;
    AgentWeb mAgentWeb;
    public AndroidInterface(Context context, AgentWeb mAgentWeb) {
        this.context = context;
        this.mAgentWeb = mAgentWeb;
    }
    @JavascriptInterface
    public void showDialog() {
        new MaterialDialog.Builder(context)
                .iconRes(R.drawable.icon_tip)
                .title("提示")
                .content("dialog弹窗测试!")
                .positiveText(R.string.lab_submit)
                .negativeText(R.string.lab_cancel)
                .onPositive((dialog, which) -> mAgentWeb.getJsAccessEntrace().quickCallJs("callByAndroidOneParam", s -> XToastUtils.info("JS回调内容:"+s),"dialog点击了确定"))
                .onNegative((dialog, which) -> mAgentWeb.getJsAccessEntrace().quickCallJs("callByAndroidOneParam", s -> XToastUtils.info("JS回调内容:"+s),"dialog点击了取消"))
                .show();
    }


}

最终效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

beego框架学习之安装框架

Beego 是一个快速开发 Go 应用的 HTTP 框架&#xff0c;可以用来快速开发 API、Web 及后端服务等各种应用&#xff0c;是一个 RESTful 的框架&#xff0c;相对于echo框架仅包含路由和控制器核心模块&#xff0c;beego是一个完整的MVC框架包括路由&控制器、model 数据库ORM封…

GitLab结合fortify实现自动化代码审计实践

一、背景 在甲方做安全的同学可能会有一项代码审计的工作&#xff0c;通常需要从gitlab把代码拉取下来&#xff0c;然后使用代码审计工具进行扫描&#xff0c;然后对结果进行人工确认&#xff1b; 在这个流程中需要做的事情比较繁琐&#xff0c;比如说gitlab如何配置token、如…

.net开发安卓入门 - 基本交互(Button,输入EditText,TextView,Toast)

.net开发安卓入门 - 基本交互前言TextViewEditTextButtonxml代码如下C#代码如下运行效果优化代码先看原生Android给一个View添加点击事件的三种方式在Xamarin.Android中添加onClick也的两种办法使用onClick绑定前后台调用处理逻辑第一步&#xff1a;第二步&#xff1a;第三步&a…

【实操篇】Linux组管理

目录 ●组管理 ●linux组的基本介绍 ●组的创建以及对用户的操作&#xff08;复习&#xff09; ●查看文件的所有者 ●改变文件所有者 ●修改文件所在的组 ●改变用户所在组 ●linux组的基本介绍 在Linux中的每个用户必须属于一个组&#xff0c;不能独立于组外。并且在Li…

[附源码]Python计算机毕业设计SSM基于云服务器网上论坛设计(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

软件测试 | 版本控制神器GitHub的基本使用与踩坑,教你一铲子填平!

首先需要申请GitHub帐号&#xff0c;这个就不多说了&#xff0c;大家自行百度或Google吧哈。这里默认大家都已经有GitHub账号了~ PS:&#xff08;如果已经配置好的小伙伴可以跳过配置GitHub这部分&#xff09; 配置GitHub 踩坑时刻 - 配置 第一次使用&#xff0c;如果没有配…

Photoshop使用蓝湖 cutterman插件快速切图

快速切图便于节约我们的开发时间 一 蓝湖插件 1.蓝湖官网下载插件 2.ps加载插件 一般都会自动加载 3.开始使用蓝湖插件切图 点击蓝湖插件选择对应的团队点击面板上的切图&#xff0c;选中图层进行标记 标记完成后选择上传全部面板 会提示到蓝湖官网下载对应的切图选择对应的…

mac OS 环境下安装 Redis(使用Homebrew终端安装)

使用Homebrew终端安装Redis&#xff08;好处后面会介绍&#xff09; 获取安装Homebrew&#xff08;复制如下代码到终端运行&#xff09;&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择好克隆原后按提示…

【学习经验分享NO.15】本科硕士学位论文和学术论文查重及降重方法

文章目录前言一、查重方法1、查重指标的含义2、查重方法二、如何修改论文重复三、常见问题答疑总结前言 学术小论文以及本科和硕士大论文在发表前需要进行降重处理&#xff0c;不然重复率过高会影响论文的发表&#xff0c;小论文一般查重要至少在20%以下&#xff0c;有些sci期…

pandas设置和显示数据框行列的数量

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 pandas设置和显示数据框行列的数量 [太阳]选择题 以下python代码结果错误的一项是? import pandas as pd pd.set_option(display.max_columns, None) pd.set_option(display.max_rows, None…

vue集成ant-design-vue

因为需要集成ant-design-vue&#xff0c;所以我在老的vue项目上进行集成&#xff0c;这不集成不要紧&#xff0c;一集成项目都起不来&#xff0c;下面进行下梳理 1遇到问题&#xff1a; BrowserslistError: Unknown browser query dead 查资料得到; 1.删除package.json文件里…

Docker[3]-Docker的常用命令

1 帮助命令 命令说明docker version查看docker的版本信息docker info查看docker详细的信息docker --helpdocker的帮助命令&#xff0c;可以查看到相关的其他命令 docker version docker info docker --help 2 镜像命令 镜像命令说明docker images列出本地主机上的镜像docker …

论文投稿指南——中国(中文EI)期刊推荐(第3期)

&#x1f680; EI是国际知名三大检索系统之一&#xff0c;在学术界的知名度和认可度仅次于SCI&#xff01;&#x1f384;&#x1f388; 【前言】 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊。其中&#xf…

DBCO试剂Acrylate-PEG5-DBCO,DBCO-PEG5-Acrylate应用生物标记

基础产品数据&#xff08;Basic Product Data&#xff09;&#xff1a; CAS号&#xff1a;N/A 中文名&#xff1a;二苯并环辛炔-五聚乙二醇-丙烯酸酯 英文名&#xff1a;DBCO-PEG5-Acrylate&#xff0c;Acrylate-PEG5-DBCO 结构式&#xff08;Structural&#xff09;&#xff1…

JAVA SCRIPT设计模式--行为型--设计模式之Interpreter解释器模式(15)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

企业微信如何设置文件权限?

当企业使用企业微信移动办公时&#xff0c;有些员工想要上传一些私人文件到企业微信微盘中“我的文件”里保存&#xff0c;但是又担心管理员可以看到&#xff0c;那么该如何设置文件权限呢&#xff1f; 前言 企业微信的会话内容存档功能可以在员工与客户知情的情况下存储聊天记…

linux系统怎么远程进服务器

linux系统怎么远程进服务器 我是艾西&#xff0c;还是有很多小白同学问我linux系统服务器怎么远程连接。那么今天我们重点来教教大家如何用电脑远程服务器配上图文教程&#xff0c;让不懂的新手小白一看就会&#xff0c;分分钟上手教程 远程服务器需要一台电脑俗称“PC”就是我…

i.e., namely, that is区别

i.e. 用作同位语&#xff0c;“即” To buy the car that I really want (i.e., a Tesla), I will have to work a lot of overtime. namely 用作插入语&#xff0c;表示列举&#xff0c;”也就是” The present paper evaluates the effect of major weather variables, nam…

阿里云国际版代充-对象存储OSS可应用哪些场景?

阿里云国际版对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务&#xff0c;可提供99.9999999999%&#xff08;12个9&#xff09;的数据持久性&#xff0c;99.995%的数据可用性。多种存储类型供选择&#xff0c;全面优化存储成本。 阿里云国际版OSS具有与平台无关的RE…

谷粒商城6:反向代理与性能优化

0.thymeleaf的复习 1.nginx反向代理 nginx的整体框架 访问流程 域名访问->在本地host文件中查找对应ip->找到了访问 找不到->DNS域名解析来解析域名到ip->找到了访问整体配置流程&#xff1a; 本机内&#xff1a; 查看域名的映射规则 在host文件中增加gulimall.co…