JavaScript与Android交互(Kotlin)

本文介绍了Android通过WebView与JavaScript进行交互的方法,包括Android调用JS方法(loadUrl和evaluateJavascript)以及JS调用Android方法(addJavascriptInterface、shouldOverrideUrlLoading和WebChromeClient的对话框拦截)。同时,文章强调了交互中的注意事项,如页面加载完成后再调用、主线程调用等,并探讨了不同方法的优缺点。最后,通过一个选取相册照片并上传的实例展示了复杂交互的实现过程。
摘要由CSDN通过智能技术生成

小伙伴们在使用安卓原生webview时经常能碰到js调用安卓手机相机、相册或录音等功能,前端小姐姐写好了代码功能,在IOS手机测试没有问题,一到安卓手机里功能怎么就失效了呢,安卓程序员肯定以为自己代码哪里配置的有问题,一顿调试,最后发现还是不行,于是乎各种百度谷歌,最后发现原来是webview自己的问题(顺便吐槽下,为什么webview这个常用的控件,谷歌公司就不能优化下呢,坑太多了!),好了废话不多说,进入正文。

先来说说什么是JS交互:

说的通俗一点就是前端一些调用不了原生代码的功能,或者在一些复杂页面和混排页面上,原生没有网页来得快,所以在实际项目中,很多情况下都是原生页面掺杂着webView 加载js的网页的,这就涉及到两者之间的交互以及传值问题。

Android调用JS方法:

  • 通过WebView的loadUrl()调用(API小于等于18使用)
  • 通过WebView的evaluateJavascript()调用(API大于18使用)

JS调用Android方法:

  • 通过WebView的addJavascriptInterface()
  • 通过WebViewClient的shouldOverrideUrlLoading()回调拦截url
  • 通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert()、confirm()、prompt()方法
  • 由于方法二和方法三使用方法复杂,大多数同学使
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值