-
Kotlin实现Android与js的互调,js调用安卓方法获得数据然后传回js,做逻辑操作
2019-03-13 11:53:23Android和js的交互主要分为三种:1,安卓调用js的方法。2,js调用安卓的方法。3回调,即js调用安卓的方法获得数据,然后数据回传给js,js做业务处理。如有疑问可以看博客:... -
前端JS调用安卓方法
2019-11-14 12:23:11window.client // 是个对象,是安卓注入到JS中的,安卓中所有向JS暴露... android.test(param1, param2) // 调用的函数,且传参给安卓。参数的数据类型必须和安卓定义的一致 let returnValue = android.test(param1...window.client // 是个对象,是安卓注入到JS中的,安卓中所有向JS暴露的方法都在里面 let android = window.client; // 将注入对象赋给变量 android.test(param1, param2) // 调用的函数,且传参给安卓。参数的数据类型必须和安卓定义的一致 let returnValue = android.test(param1, param2) // 接收安卓的返回值,如果是要封装,记得加return,不然一直都是undefined
-
安卓Kotlin API17以上 js调用Java的方法
2020-07-16 21:00:51Android4.2以前WebView 提供了javascript 调用...所以必须要给每个可供js代码调用的Java方法加一个@JavascriptInterface接口。1 //js调用代码 w.settings.javaScriptEnabled = true w.addJavascriptInterface(GetH.Android4.2以前WebView 提供了javascript 调用Java代码的方法,会造成很大的安全漏洞。Android官方在
API17
后,限制javascript代码只能调用声明了@JavascriptInterface
注解的Java方法。所以必须要给每个可供js代码调用的Java方法加一个
@JavascriptInterface
接口。1//js调用代码 w.settings.javaScriptEnabled = true w.addJavascriptInterface(GetHTMLContent(), "lt") w.webViewClient = MyWebViewClient() w.loadUrl("javascript:lt.showh(document.getElementsByTagName('html')[0].innerHTML);")
//调用的方法 class GetHTMLContent { @JavascriptInterface fun showh(html: String) { Log.d("HTML", html) } }
-
Android:JS调用安卓方法介绍
2016-09-19 17:59:11Android:JS调用安卓方法介绍标签...1创建提供给JS调用的方法 2在JS中调用方法 3将对象传递个JS代码 Demo 1,创建提供给JS调用的方法 @android.webkit.JavascriptInterface fun showToast(name: String) { Toast.maAndroid:JS调用安卓方法介绍
标签(空格分隔): android js
1,创建提供给JS调用的方法
@android.webkit.JavascriptInterface fun showToast(name: String) { Toast.makeText(this, name, Toast.LENGTH_SHORT).show() }
给方法声明
@android.webkit.JavascriptInterface
后表明该方法允许JS代码调用2,在JS中调用方法
<!DOCTYPE html> <html> <head> <meta http-equiv="Content_Type" content="text/html;charset=utf-8"/> <title>Js调用Android</title> </head> <body> <input type="button" value="打招呼" onclick="myObj.showToast('孙悟空');"/> </body> </html>
这里调用了上面提供的
showToast
方法3,将对象传递个JS代码
val settings = mmWebView.settings settings.javaScriptEnabled = true mmWebView.addJavascriptInterface(object, "myObj")
第一句取出WebView的设置对象,第二句允许执行JS代码,第三句发送方法所在的对象,并将方法命名为myObj
Demo
class MiniBrowserActivity : AppCompatActivity() { val js = """ <!DOCTYPE html> <html> <head> <meta http-equiv="Content_Type" content="text/html;charset=utf-8"/> <title>Js调用Android</title> </head> <body> <input type="button" value="打招呼" onclick="myObj.showToast('孙悟空');"/> </body> </html> """ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_mini_browser) val settings = mmWebView.settings settings.javaScriptEnabled = true mmWebView.addJavascriptInterface(this, "myObj") mmWebView.loadData(js, "text/html;charset=utf-8", "utf-8") } @android.webkit.JavascriptInterface fun showToast(name: String) { Toast.makeText(this, name, Toast.LENGTH_SHORT).show() } }
-
React Native之js同步调用安卓原生方法@ReactMethod(isBlockingSynchronousMethod = true)
2018-09-20 21:41:25之前的代码js调用安卓原生都是用的异步方法,比如callback, promiss,异步的话,我们一般是在安卓原生有耗时操作,才用异步,如果我要离开返回,就需要js调用安卓同步方法 利用callback实现js调用原生可以参考我的这篇...1 问题
之前的代码js调用安卓原生都是用的异步方法,比如callback, promiss,异步的话,我们一般是在安卓原生有耗时操作,才用异步,如果我要离开返回,就需要js调用安卓同步方法
利用callback实现js调用原生可以参考我的这篇博客
React Native之js调用Android原生使用Callback传递结果给js
2 代码实现
依然在MyToastModule.java文件下面增加下面的同步函数
@ReactMethod(isBlockingSynchronousMethod = true) public String showMyName() { return "chenyu1"; }
这里用了注解,请注意,也就是说意味着这个方法是同步方法
然后App.js的部分实现如下
/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import {Platform, StyleSheet, Text, View, NativeModules} from 'react-native'; const instructions = Platform.select({ ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', android: 'Double tap R on your keyboard to reload,\n' + 'Shake or press menu button for dev menu', }); var myAndroidToast = NativeModules.MyToast; type Props = {}; export default class App extends Component<Props> { constructor(props){ super(props); this.state={ myName:'chenzixuan', } } render() { return ( <View style={styles.container}> <Text onPress={()=> this._androidShowMsg()} style={styles.welcome}>Welcome to React Native!</Text> <Text style={styles.instructions}>To get started, edit App.js</Text> <Text style={styles.instructions}>{instructions}</Text> <Text style={styles.instructions}>{this.state.myName}</Text> </View> ); } _androidShowMsg = () => { var value = myAndroidToast.showMyName(); this.setState({myName:value}); }; } const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#F5FCFF', }, welcome: { fontSize: 20, textAlign: 'center', margin: 10, }, instructions: { textAlign: 'center', color: '#333333', marginBottom: 5, }, });
3 运行结果
点击Welcome to React Native 效果如下
-
js 和 安卓互相调用
2016-11-30 11:50:17今天写的是安卓中调用html中的js,如果安卓中和js想要相互调用,首先要代码设置webview能够执行javaScript 默认是不执行的代码如下图 然后像webview注册一个对象onfire ,同样也传递一个JavaScriptCallBack实例给... -
如何让安卓WebView支持js调用window.open()和window.close()的方法
2018-09-15 07:00:40最近项目中遇到一个webview...做web开发的朋友应该知道,这个需要在A中通过window.open()开启B,在B中选择完毕和调用window.close()关闭B,并且把获取的值传递给A。由于我不是做web开发的,表述可能不是特别对,但... -
Android调用H5的方法.Js交互
2018-04-18 12:06:281.概述 在安卓开发中, 内嵌H5的页面的情况越来越多, 很多时候我们需要和H5进行相互调用, 比如H5调用安卓的方法 打开应用市场 等等 安卓调用H5的方法 获取网页传递的数据 等等 。交互其实是很简单的的一个问题,下面... -
如何让安卓WebView支持js调用window.open()和window.close()的方法。
2016-05-23 20:03:13最近项目中遇到一个webview...做web开发的朋友应该知道,这个需要在A中通过window.open()开启B,在B中选择完毕和调用window.close()关闭B,并且把获取的值传递给A。由于我不是做web开发的,表述可能不是特别对,但 -
vue中的方法如何暴露给webview,使安卓和iOS可以调用
2017-09-13 11:39:00新建一个外部公共的js文件app.js,定义一个对象并输出,如下: var hybrid = { } window.Hybrid = hybrid if (window.Vue) { // 自动绑定 window.Vue.use(hybrid) } export { hybrid } 在需要的... -
使用JS调用安卓原生Activity并获取返回结果
2020-06-16 20:15:26最近有个需求,使用车牌识别,由于项目前期定型时使用的Html 5plus,使用的是上传图片到服务器然后调用百度的SDK把识别结果返回给前端,这个项目还是使用Hbuilder离线打包出来的版本,对前端是一知半解的,还是习惯... -
ReactNative系列之二十六JS代码同步调用JAVA方法
2018-07-30 15:28:32在安卓平台上,通常我们使用继承“ReactContextBaseJavaModule.java”,并通过注解方式“@ReactMethod”,添加至packages。然后注册到至JS-C++-Java的通信消息队列中。...1.原生的方法中增加括号内的注解部分 @Re... -
js调用摄像头解析二维码
2019-09-17 13:47:48因为需求做一个扫码功能,发觉网上的资料不是不能用就是不完善,遂借鉴各种...逻辑流程:网上给出了各种借助照相机的办法,方法很多,我觉得最合适我的属于,js获取摄像头设备,然后获取打开摄像头,获取视频流,... -
js和android方法互调
2018-11-13 10:18:11//安卓端代码 WebView myWebView = (WebView) findViewById(R.id.myWebView); myWebView.getSettings().setJavaScriptEnabled(true);... //给webview添加js接口(供js调用安卓的方法) myWebView.addJavascriptInte... -
Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现
2019-09-23 17:58:48最近一直搞Dcloud ,这是HTML5版本的开发,打包时候,可以打包成 apk 和ipa 分别运行在...我试了很多方法,之前是在 HTML5上直接写方法,监听蓝牙状态,但是jS是单线程,直接把进程阻塞了其他的啥也干不了,而且时... -
h5与android和ios分享方法调用
2021-01-25 11:20:38创建app.js,调用安卓ios的分享方法,并传参(options) initShare(content,options){ // h5给客户端传递的参数 const can={ share_title:content.title, share_desc :content.desc, share_ico -
Dcloud HTML5 监听蓝牙设备 调用 原生安卓实现 - aspirant - 博客园
2020-11-05 15:43:29我试了很多方法,之前是在 HTML5上直接写方法,监听蓝牙状态,但是jS是单线程,直接把进程阻塞了其他的啥也干不了,而且时间长了监听,总会莫名中断, 这是我当时写的算法 http://ask.dcloud.net.cn/publish/ar -
react-native调用原生安卓android(兼容7.0以上版本)系统相机拍照和选择相册照片,并将返回结果用作头像
2021-01-20 08:43:28话不多说,先上效果图 大致的思路 要从RN中调用原生相机拍照和选择照片思路是这样的,先在原生中创建一个ReactContextBaseJavaModule模块,...1.编写提供给RN调用的拍照和选择照片的方法。 首先创建一个继承自ReactCon -
记一次安卓图片压缩的调优
2018-12-20 17:02:05遇到问题:由于调用格式都是前端调用原生壳方法,需要走JS桥(自己公司实现的一套android、js交互方法),走JS桥的时候会比直接走原生慢,然后拍的照如果不做处理,直接转Base64(图片越大,Base64越长)返给前端的... -
Android WebView上传图片(base64)到H5(JS)
2017-09-18 09:01:29利用WebChromeClient的openFileChooser(5.0+是onShowFileChooser)JS调用安卓端定义好的接口选择图片或者打开照相机,获取到图片信息(base64)之后,安卓端调用JS方法回调给H5JS调用安卓端定义好的接 -
vue.js的h5页面与android/ ios交互详细
2020-05-11 15:10:41H5调用原生方法 约定方法名h5share,h5通过方法h5share传参id给ios和Android, navigator.userAgent获取设备信息 安卓获取id代码 -
安卓Android与H5双向交互MathJax展示数学公式(源码+解析)
2018-09-01 22:27:54博主就今天周五又做了个需求(安卓Android与H5交互),原来上线的功能是服务器配置过来的学习报告(一个H5页面)并提供原始的微信分享功能,今天增加的是反向需求,由APP提供给服务器配置过来的H5页面的子级页面调用... -
android回调weex android调用weex --- weex android交互
2020-12-22 11:32:43weex已经提供了一些功能,但是有一些比如:获取mac地址、封装一些natvie的自带播放功能给js使用,则需要提供js调用native的功能;当然,natvie有时候做完一些事情后,也需要主动调用js函数,告诉js接下来的动作。 * -
【GT-Android与JavaScript相互调用(二)】
2018-07-09 10:34:14前言:在上一篇文章中,已经分享了安卓端如何通过WebView调用JavaScript定义的方法来进行背景图片的设置,接下来在这篇文章中我将把如何在JS端调用Android端定义的方法分享给大家。功能描述:JS端调用安卓端定义的... -
Android通过webview与H5交互(互调)
2019-07-31 14:51:34前话 笔者是写H5小页面的,所以这篇文章主要是针对前端与安卓交互时遇到的一些问题做简单总结和合理猜测,针对安卓的话,有一个图是总结所有交互的方式的,可以看...● 提供给安卓使用的js方法,需要提高到window... -
混合App
2020-12-07 21:42:28有个安卓的js, 里面就是所有的安卓的方法, 把所有安卓的方法定义到一个function里, function只做安卓的调用 目前市场上主流的APP分为三种:原生APP、Web APP(即HTML5)和混合APP三种,相对应的定制开发
收藏数
52
精华内容
20
-
MySQL 高可用(DRBD + heartbeat)
-
【硬核】一线Python程序员实战经验分享(1)
-
协程的意义
-
大数据开发之Hadoop学习6--HDFS的Shell操作
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
PPT大神之路高清教程
-
鲇鱼1000-2000.txt
-
用Go语言来写区块链(一)
-
mysql-8.0.11-winx64.zip
-
MySQL 高可用工具 heartbeat 实战部署详解
-
基于Qt的LibVLC开发教程
-
泰坦尼克号建模分析-你能活下来吗?
-
ELF视频教程
-
Docker从入门到精通
-
GC如何判断对象可以被回收
-
com.termux_102.apk
-
DNAMAN.exe
-
gexin-rp-sdk-http-4.1.1.0.rar
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
A movie title explorer.zip