js调用android,js调用android摄像头-成都快上网建站

js调用android,js调用android摄像头

javascript调用android问题

onclick="window.Android.show()"

从事德阳电信服务器托管,服务器租用,云主机,雅安服务器托管主机域名,CDN,网络代维等服务。

你的语法写错了,js调用Android要用window.TAG

这个TAG就是

webView.addJavascriptInterface(new Object(), TAG); // 设置javaScript可用于操作Activity类

看你的代码,你传递了一个Android

因此你的js里应改成window.Android.show();

JS 调用android的方法该怎么调

      body

          !-- Calls into the javascript interface for the activity --

          !-- 从HTML文件中调用activity中的函数 --

          !-- 也就是从HTML到android程序 留意window.demo.clickOnAndroid()这句话 --

          a onClick="window.demo.clickOnAndroid()"Click/a

      /body

mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");

final class DemoJavaScriptInterface {  

DemoJavaScriptInterface() {  

}  

/** 

* This is not called on the UI thread. Post a runnable to invoke 

* loadUrl on the UI thread. 

*/  

public void clickOnAndroid() {        // 注意这里的名称。它为clickOnAndroid(),注意,注意,严重注意  

mHandler.post(new Runnable() {  

public void run() {  

Toast.makeText....  

}  

});  

}  

}

Js调用Android的方法

1、初始化WebView

X5WebView  webView =new X5WebView(this,null);我这里用的是腾讯的TBS浏览服务.详情参考上一篇文章:

2、设置初始化WebSetting

3、给WebView添加addJavascriptInterface()

例如:

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();\

}\

}

如何在JAVASCRIPT调用Android JAVA函数

你好:

一、网页的JS代码调用ANDROID中JAVA代码的方法

在网页中调用java代码、需要在webview控件中添加javascriptInterface

contentWebView = (WebView) findViewById(R.id.webview);

//启用javascript

contentWebView.getSettings().setJavaScriptEnabled(true);

contentWebView.addJavascriptInterface(this, "js对象名");

在Activity中定义一个要被js调用的方法、src为js传递过来的参数、如果没有不传也可以

public void jsFunction(final String str) {

Toast.makeText(this, str, Toast.LENGTH_SHORT).show();

runOnUiThread(new Runnable() {

@Override

public void run() {

//在里对Android应用的UI进行处理

}

});

}

在网页中、只需要像调用js方法一样、进行调用就可以

a onClick="window.js对象名.jsFunction(´hello world´)"

点击调用java代码并传递参数

/a

二、ANDROID中JAVA代码调用网页的JS代码的方法

Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的、只是参数url的写法不一样而已

// 无参数调用

contentWebView.loadUrl("javascript:javacalljs()");

// 传递参数调用

contentWebView.loadUrl("javascript:javacalljswithargs("

+ "´hello world´" + ")");

三、JAVA和JS交互注意事项

1、Java 调用 js 里面的函数、效率并不是很高、估计要200ms左右吧、做交互性很强的事情、这种速度很难让人接受、而js去调Java的方法、速度很快、50ms左右、所以尽量用js调用Java方法

2、Java 调用 js 的函数、没有返回值、调用了就控制不到了

3、Js 调用 Java 的方法、返回值如果是字符串、你会发现这个字符串是 native 的、转成 locale 的才能正常使用、使用 toLocaleString() 函数就可以了、不过这个函数的速度并不快、转化的字符串如果很多、将会很耗费时间

4、网页中尽量不要使用jQuery、执行起来需要5-6秒、最好使用原生的js写业务脚本、以提升加载速度、改善用户体验


当前标题:js调用android,js调用android摄像头
本文URL:http://kswjz.com/article/dscddjs.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流