常用的Js调Android方法,以及Android原生传值给Js

常用的Js调Android方法,以及Android原生传值给Js

最近公司弄点这样的需求,我借此机会学习重新温故了一下,Js掉用android原生的方法 还有把值传回给js的方法

JavaScript掉Android原生

android代码

    private void initView() {
        mWebView = findViewById(R.id.web_x);
        WebSettings webSettings = mWebView.getSettings();

        // 设置与Js交互的权限
        webSettings.setJavaScriptEnabled(true);
        //设置编码
        //webSettings.setDefaultTextEncodingName("GBK");
        // 设置允许JS弹窗
       webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        //加载页面
	 mWebView.loadUrl("file:///android_asset/index.html");
        //TODO JS 调用Android原生
        mWebView.addJavascriptInterface(new StartOne(), "test");       
    }

说明: new StartOne() 启动回调的方法, 这个test是启动 JavaScript回调原生方法的必不可少的,IOS则是不需要这个前缀的。

JavaScript代码

<script>
			function startSdk(){
				  test.startHome("启动SDK首页");
			}
</script>

test.startHome
startHome : JavaScript的方法名

android代码

 //进入主页
    public class StartOne{
        @JavascriptInterface
        public void startHome(final String message) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Log.e("MME", message );
                    startActivity(new Intent(HomeActivity.this, HomeActivity.class));
              
                }
            });
        }
    }

在android中@JavascriptInterface 下要以JavaScript的方法名命名android的方法名,不然js怎么知道它要调起哪里。

然后执行下看下效果
在这里插入图片描述
掉起后的页面
在这里插入图片描述

Android原生给JavaScript传值的方法有好多,我写个我常用的方法 =_=!

Android原生给JavaScript传值
js调起android原生,原生android处理一些业务逻辑之后,再把处理完的结果返回给js

android代码

   mWebView.loadUrl("javascript:WriteX('"+s+"')");

WriteX 是与js商定的或回传方法

JavaScript代码

<script>	
            function WriteX(res){
		        document.getElementById('signResult').value = res;
			}


</script>

js拿到值并回显

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2842.html原文链接:https://javaforall.net

(0)
上一篇 2021年3月12日 下午10:52
下一篇 2021年3月12日 下午10:52


相关推荐

  • 利用R绘制venn图(VennDiagram、eulerr、venneuler、limma)

    利用R绘制venn图(VennDiagram、eulerr、venneuler、limma)最近对利用R绘制venn图进行了一些学习。参考了网上很多资料:【R作图】在R中绘制韦恩图的几种方法和一些漂亮的venn图如何使用R来绘制韦恩图(VennDiagram)venn.diagram:MakeaVennDiagram具体包括下面三个包:limma、venneuler、VennDiagram。总的来说,三个包都有着各自的不足。下面会一一进行说明,这里先放上结论:…

    2022年7月21日
    24
  • @PostConstruct注解详解

    @PostConstruct注解详解初始化方式一 PostConstruc 注解假设类 UserControll 有个成员变量 UserService 被 Autowired 修饰 那么 UserService 的注入是在 UserControll 的构造方法之后执行的 如果想在 UserControll 对象生成时候完成某些初始化操作 而偏偏这些初始化操作又依赖于依赖注入的对象 那么就无法在构造函数中实现 ps spring 启动时初始化异常 例如 publicclassU

    2026年3月26日
    2
  • pycharm闪退,在C:\Users下生成java_error_in_pycharm64_9092.log

    pycharm闪退,在C:\Users下生成java_error_in_pycharm64_9092.log看日志内容 Afatalerrorh EXCEPTION ACCESS VIOLATION 0xc0000005 atpc 0x00007ffa29 pid 9092 tid 9348JREversi OpenJDKRunti 11 0 9 1 11 1145 37 jcef 11 0 9 1 11 buil

    2026年3月27日
    1
  • java getproperty_Java Properties getProperty()方法

    java getproperty_Java Properties getProperty()方法JavaProperti 方法 java util Properties getProperty Stringkey Stringdefaul 与在此属性列表中指定键的属性方法搜索 如果在此属性列表中找不到该键 则将递归检查默认属性列表及其默认值 如果找不到该属性 则该方法返回默认值参数 1 语法 publicString S

    2026年3月17日
    2
  • php 死链查询,seo网站死链解决方法 死链查询检测工具

    php 死链查询,seo网站死链解决方法 死链查询检测工具死链是指服务器的地址已经改变了.无法找到当前地址位置,包括协议死链和内容死链两种形式。死链出现的原因有网站服务器设置错误;某文件夹名称修改,路径错误链接变成死链等。我们都知道死链对seo排名的危害是非常大的。死链对网站的危害一、有可能会让搜索引擎降权二、用户体验较差死链检测方法:Xenu死链查询工具今天教大家如何使用Xenu死链接检测工具对网站死链接(什么是网站死链)进行处理,有图有真相,轻松四步…

    2022年7月23日
    18
  • 稳压管稳压电路

    稳压管稳压电路一、稳压管稳压电路:整流滤波电路的输出电压会随着电网电压的波动而波动,随着负载电阻的变化而变化。为了获得稳定性好的直流电压,必须采取稳压措施。二、稳压原理:对于任何稳压电路而言,都应该从两方面来考虑:电网电压波动、负载变化,研究其输出电压是否稳定。(1)、电网电压波动:(2)、负载变化:…

    2022年6月20日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号