您的位置:

android与js传参(安卓页面传参)

android与js传参(安卓页面传参)

更新:

本文目录一览:

如何在JAVASCRIPT调用Android JAVA函数

首先是网页:

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%  

!DOCTYPE HTML  

html  

head  

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"  

titlejs和android相互调用/title  

head  

  

script type="text/javascript" language="javascript"  

    //调用java方法jsCallJava()  

    function showHtmlcallJava() {  

        var str = window.android.jsCallJava();  

        document.getElementById("info1").value = str;  

    }  

  

    //调用java方法jsCallJavaWithParams(String var),带参数  

    function showHtmlcallJava2() {  

        var str = window.android.jsCallJavaWithParams("Devin Chen");  

        document.getElementById("info2").value = str;  

    }  

  

    //提供给java调用的方法  

    function show() {  

        document.getElementById("id_input").value = "Java调用Html中的方法";  

    }  

  

    //提供给java调用的方法,带参数  

    function showWithParam(param) {  

        document.getElementById("id_input2").value = "Java调用Html中的方法: " + param;  

    }  

/script  

/head  

  

body  

    input id="info1" style="width: 90%" type="text" value="null" /br  

    input type="button" value="Html调用Java方法" onclick="showHtmlcallJava()" /br  

    input id="info2" style="width: 90%" type="text" value="null" /br  

    input type="button" value="Html调用带参数的Java方法" onclick="showHtmlcallJava2()" /br  

    input id="id_input" style="width: 90%" type="text" value="null" /br  

    input type="button" value="Java调用Html方法" onclick="window.android.javaCallJavaScript()" /br  

    input id="id_input2" style="width: 90%" type="text" value="null" /br  

    input type="button" value="Java调用带参数的Html方法" onclick="window.android.javaCallJavaScriptWithParams()" /  

/body  

/html

Android部分的布局就一个WebView,MainActivity源代码:

/** 

 * java方法和javascript方法的相互调用 

 */  

public class MainActivity extends AppCompatActivity {  

    private static final String url = "";  

    private WebView mWebView;  

  

    @Override  

    protected void onCreate(Bundle savedInstanceState) {  

        super.onCreate(savedInstanceState);  

        setContentView(R.layout.activity_main);  

        initView();  

    }  

  

    private void initView() {  

        mWebView = (WebView) findViewById(R.id.web_main);  

        WebSettings settings = mWebView.getSettings();  

        settings.setJavaScriptEnabled(true);  

        settings.setDefaultTextEncodingName("utf-8");  

        mWebView.loadUrl(url);  

        mWebView.setWebViewClient(new WebViewClient());  

        //这两句是必须的,"android"就是jsp中调用方法时window后面的对象  

        Object obj = getObject();  

        mWebView.addJavascriptInterface(obj, "android");  

    }  

  

    private Object getObject() {  

  

        Object obj = new Object() {  

            /** 

             * html中的JavaScript调用Java方法 

             * 注解是必须的 

             * @return 

             */  

            @JavascriptInterface  

            public String jsCallJava() {  

                return "JavaScript调用Java方法";  

            }  

  

            /** 

             * html中的JavaScript调用带参数的Java方法 

             * 注解是必须的 

             * @return 

             */  

            @JavascriptInterface  

            public String jsCallJavaWithParams(String var) {  

                return "JavaScript调用带参数的Java方法" + var;  

            }  

  

            /** 

             * java调用html中的方法,遗憾的是不知道有什么办法可以拿到返回值 

             */  

            @JavascriptInterface  

            public void javaCallJavaScript() {  

                runOnUiThread(new Runnable() {  

                    @Override  

                    public void run() {  

                        mWebView.loadUrl("javascript:show()");  

  

                    }  

                });  

            }  

  

            /** 

             * java调用html中的方法,并且传递参数,这个有大用 

             */  

            @JavascriptInterface  

            public void javaCallJavaScriptWithParams() {  

                runOnUiThread(new Runnable() {  

                    @Override  

                    public void run() {  

                        mWebView.loadUrl("javascript:showWithParam('baoge')");  

                    }  

                });  

            }  

  

        };  

        return obj;  

    }  

}

安卓和javascript交互必须通过webView吗?可以用安卓的其他控件调用js吗?还有他们能通过volley交互吗?

您好,很高兴能帮助您, Android中webview和js之间的交互 1.android中利用webview调用网页上的js代码。 Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示: mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("javascript:test()"); 2. 网页上调用android中java代码的方法 在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示: mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { Toast.makeText(Test.this, "测试调用java", Toast.LENGTH_LONG).show();} }); } }, "demo"); 在网页中,只需要像调用js方法一样,进行调用就可以 div id='b'a onclick="window.demo.clickOnAndroid()"b.c/a/div 3. Java代码调用js并传参 首先需要带参数的js函数,如function test(str),然后只需在调用js时传入参数即可,如下所示: mWebView.loadUrl("javascript:test('aa')"); 4.Js中调用java函数并传参 首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示: mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid(final int i) { mHandler.post(new Runnable() { public void run() { int j = i;j++; Toast.makeText(Test.this, "测试调用java" + String.valueOf(j), Toast.LENGTH_LONG).show();}});} }, "demo"); 然后在html页面中,利用如下代码div id='b'a onclick="window.demo.clickOnAndroid(2)"b.c/a/div, 即可实现调用 你的采纳是我前进的动力,还有不懂的地方,请你继续“追问”! 如你还有别的问题,可另外向我求助;答题不易,互相理解,互相帮助!

js给android传参数怎么写

webview中js调用本地java方法,这个功能实现起来稍微有点麻烦,不过也不怎么复杂,首先要对webview绑定javascriptInterface,js脚本通过这个接口来调用java代码。 contentWebView.addJavascriptInterface(this, "wst"); javainterface实际就是

安卓与js交互时怎样给js端传递数据

alert(document.getElementById('ha').innerHTML); 如果里面是b点击/b,得到的也是b点击/b. 或 alert(document.getElementById('ha').innerText); // 这个仅IE下有效,但如果里面是b点击/b,得到的只是"点击"

android中webview与js交互

移动开发中,我们经常会遇到混合开发模式,经常是在移动客户端中增加网页,来减少客户端的压力,同时也让软件更加灵活。废话少说,下面直接进入主题。

webView.getSettings().setAppCachePath(getCacheDir().getAbsolutePath());

webView.getSettings().setAppCacheEnabled(true);

if (Constant.DEBUG) {

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

}

if (Build.VERSION.SDK_INT = Build.VERSION_CODES.LOLLIPOP) {

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

}

//参数1 定义Android 与js交互的接口, 参数2 与js交互的一个常量,可以是任意一个常量字符串,

但是h5网页调用的时候需要增加这个参数二:handler

public class JSInterface{

@JavascriptInterface//这个标注必须加上 表示js要调用的方法,可以自动识别

public void getShareInfo(String strings) {

//todo android dosomething

}

}

那么 js端该如何调用这个方法呢\

android 和ios的调用方法不一样 因此 h5里面需要区别andorid和ios机型来分别调用移动端方法

如android:

//handler 是与android 约定的常量(最好做成全局通用的常量)

//getShareInfo 是与android 定义的调用方法

以上常量、方法、参数类型 必须一致才能成功调用

WebView提供两个事件回调类给应用层,分别为WebViewClient,WebChromeClient开发者可以继承

这两个类,接手相应事件处理。WebViewClient 主要提供网页加载各个阶段的通知,比如网页开始

加载onPageStarted,网页结束加载onPageFinished等;WebChromeClient主要提供网页加载过程

中提供的数据内容,比如返回网页的title,favicon等。

有需要监听加载网页进度

//需要webBar的可以自定义增加一个webBar

最后,就是大家都知道的webView.loadUrl(url);//url需要加载的网页

那么,如何在android调用js的方法呢

//getMsg() 为js里面暴露的方法

在销毁的时候:

protected void onDestroy() {\

super.onDestroy();\

if (webView != null) {\

webView.loadUrl("about:blank");\

webView.destory();\

}\

}

在Android上怎样实现JAVA和JS交互

android调用js方法比较简单,一行代码搞定。

mWebView.loadUrl("javascript:test('" + aa+ "')");//test就是你js方法,然后是参数

然后是js调用android方法,比较复杂。

a onclick="window.wst.test2(2)"b.c/a

这个window.wst的wst就是Android中自己定义的标识名称,clickOnAndroid方法就是安卓中自定义的方法名。

mWebView.addJavascriptInterface(new MyTest(), "wst");//给android添加一个js接口,标识名称wst

//这里的代码是个类部类

private final class MyTest{

 @JavascriptInterface

 public void clickOnAndroid(int number) {

    MyActivity.this.runOnUiThread(new Runnable() {

        @Override

        public void run() {

          Log.i("number",number);//这里所有代码必须写到主线程中,否则报错。

        }

    });

  }

}

这样就能实现js调用android。

两个方法最重要的都是要启用webview的js功能。

// 启用javascript

mWebView.getSettings().setJavaScriptEnabled(true);

哪里不懂可以继续追问我

android与js传参(安卓页面传参)

本文目录一览: 1、如何在JAVASCRIPT调用Android JAVA函数 2、安卓和javascript交互必须通过webView吗?可以用安卓的其他控件调用js吗?还有他们能通过volley交

2023-12-08
python向js传参,python 传参

2022-11-24
js打包ios(JS打包成安卓)

本文目录一览: 1、html+js做的网站,想做成APP怎么封装呢 2、iOS打包Framework静态库,从Framework里加载本地html,怎么加载 3、用这个auto.js编程软件写好脚本后

2023-12-08
安卓运行js代码,安卓 运行js

本文目录一览: 1、android里如何调用Js里的函数 2、nodejs 在 android 系统里面怎么运行 3、android 中如何去执行js脚本 4、Android调用js的问题 andro

2023-12-08
安卓js调用java保存文件在本地(java下载文件夹到本地

本文目录一览: 1、JS怎样调用Android本地原生方法 2、如何在android平台上使用js直接调用Java方法 3、在Android上怎样实现JAVA和JS交互 4、在android中怎样调用

2023-12-08
android支持js吗(android js)

本文目录一览: 1、android中用javascript吗 2、js的框架能用到android开发中吗?比如echart,moment,art template.... 3、安卓手机有没有浏览器支持

2023-12-08
php与js传递参数(js的值怎么传到php中)

2022-11-11
js和php传递参数(php命令行传递参数)

本文目录一览: 1、js如何传值给php? 2、如何把一个js变量传给php变量 3、js与php参数交互 4、php怎么向js传值 5、JS与PHP数据传输! js如何传值给php? 1:HTML中

2023-12-08
js传参数给php(js对象作为参数传递)

本文目录一览: 1、如何把一个js变量传给php变量 2、js 如何获取值并传到php 3、JS 如何传一个值到php 文件 4、JS的值怎么传递给PHP 5、js 里的数值传出给 php 如何把一个

2023-12-08
js传参数php(js传参数多个PHP获取)

本文目录一览: 1、如何把一个js变量传给php变量 2、JS的值怎么传递给PHP 3、js 如何获取值并传到php 如何把一个js变量传给php变量 js仅在 浏览器中运行.php 仅在服务器端运行

2023-12-08
java向js传递参数,js怎么传递参数

2022-11-17
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
java笔记,大学java笔记

2022-11-28
php传递参数给js(php传递参数给Python)

2022-11-08
js传递php变量,php向js传递参数

2023-01-06
安卓调试apk的js,apk运行

本文目录一览: 1、在android中怎样调用本地js文件里的方法并得到返回值 2、Android调用js的问题 3、android 中怎么执行js脚本 4、android里如何调用Js里的函数 5、

2023-12-08
js对上传文件加密(js地址传参数加密和解密)

本文目录一览: 1、关于js 函数加密 2、请问 上传文件的时候想在前端先进行加密? 3、介绍一点js加密的方法 4、求JS文件的加密与解密 关于js 函数加密 pre t="code" l="js"

2023-12-08
php调用js传参数,js传值给php

2022-11-19
印象笔记记录java学习(Java成长笔记)

2022-11-12
java笔记,尚硅谷java笔记

2022-12-01