关于Android4.2后WebView的js方法需要加@JavascriptInterface
解读:
targetSdkVersion>=17时,需要加上@JavascriptInterface,否则报错Uncaught TypeError: Object [object Object] ...。该标记为4.2之后引入,所以target=android-17或更高以便引入高版本android.jar
1、如果仅target低于17则出现矛盾:目标版本需要引入JavascriptInterface注解 然而低版本android.jar中又没有该类!js无法运行 仍然报错Uncaught TypeError: Object [object Object] has no method...
2、反之,如果仅targetSdkVersion低于17,那么目标版本不用加@JavascriptInterface,当然加上也行,因为当target>=17时的android.jar中有这个类
3、如果均低于17,不用加!当然了,没有这个类,想加也加不了
所以:targetSdkVersion<>17是决定因素
targetSdkVersion<17时不用加。此时如果target>=17,android.jar包中有这个类,随便加不加。如果target<17,加不了也不用加。
targetSdkVersion>=17时必须加。此时如果target>=17,android.jar包中有这个类,可以加上。如果target<17,加不了,js无法运行。
参考链接:WebView注入Java对象注意事项
关于Android4.2后WebView的js方法需要加@JavascriptInterface的更多相关文章
- WebView调用js方法获取返回值的完美解决方案
		
在Android项目中我们或多或少会涉及到与js交互的问题,这其中WebView是必须掌握的控件,今天主要说说我们通过WebView调用js方法,然后如何很好的获取返回值.这里我总结了三种方式,大家可 ...
 - ASP.Net 在Update Panel局部刷新后 重新绑定JS方法
		
我们知道Asp.Net中的Update Panel可以完成页面的局部刷新(实质上是Ajax),但是局部刷新完后,此区域的控件上所绑定的JS方法就会失效,因为我们用如下方法来重新绑定. var prm ...
 - oc 通过webView调用js方法
		
- (void)viewDidLoad { [super viewDidLoad]; //加载本地web页面 web = [[UIWebView alloc]init]; web.background ...
 - Android中WebView与H5的交互,Native与JS方法互调
		
项目中经常用到WebView与H5的交互,一个是H5调本地方法,一个是本地调H5方法,在此记录一下. 首先,启用JS支持 //启用js支持 webSettings.setJavaScriptEnabl ...
 - 页面加载完毕后调用js方法进行布局操控 已实验
		
页面加载完毕后调用js方法进行布局操控 已实验 $(function(){ var check1 = $("[id$=SMS]").is(':checked'); var bl=$ ...
 - js中页面加载完成后执行的几种方法及执行顺序
		
在js和jquery使用中,经常使用到页面加载完成后执行某一方法.通过整理,大概是五种方式(其中有的只是书写方式不一样). 1:使用jQuery的$(function){}; 2:使用jquery的$ ...
 - WebView与JS的几种交互
		
http://www.jianshu.com/p/0042d8eb67c0 最近整理了一下原生与H5之间的交互方式,简单的做个总结.OC端与JS的交互,大致有这几种:拦截协议.JavaScriptCo ...
 - [Android]通过js方法回调部分native报错 Web Console: Uncaught TypeError: Object [object Object] has no method 'xxx'
		
在android4.2以前,注入步骤如下: webview.getSetting().setJavaScriptEnable(true); class JsObject { public String ...
 - iOS webView与js交互在文本空格上输入文字
		
项目要求:webview加载html网址,内容为填空题型文本,需要在横线上添加答案,并点击提交按钮后再将答案进行回显 正常加载的效果图片: 这个是用js交互后的效果图: 点击空格,输入想输入的答案,如 ...
 
随机推荐
- linux根下目录详解及分区建议
			
/ 根目录 分区大小一定要充足,一般不小于5GB/bin,/usr/bin 普通用户使用命令 建议和/放一起/sbin,/usr/sbin 管理员使用命令/bin,/sbin 操作系统自身 ...
 - Python教程:连接数据库,对数据进行增删改查操作
			
各位志同道合的同仁可以点击上方关注↑↑↑↑↑↑ 本教程致力于程序员快速掌握Python语言编程. 本文章内容是基于上次课程Python教程:操作数据库,MySql的安装详解 和python基础知识之上 ...
 - WEB 开发工具分享
			
有好用的工具 : 云盘链接地址:
 - 关于sql 资源竞争死锁现象
			
问题:System.Exception: 事务(进程 ID 321)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品.请重新运行该事务 死锁最深层的原因就是一个:资源竞争 表现 ...
 - Linq- ExcuteQuery用法
			
DataContext.ExecuteQuery<TResult> 方法 (String, Object[]) 语法: public IEnumerable<TResult> ...
 - My97 DatePicker 选择时间后弹出选择的时间
			
项目中用到这个时间插件,注册用户时可以选中永久和选择时间,二者是互斥关系, 所以在选择时间插件时,需要绑定一个事件,所以看到了这个插件: <input id="yydate" ...
 - ios专题 - 使用bundle文件管理资源
			
[原创]http://www.cnblogs.com/luoguoqiang1985 以前,自己写程序,图片等资源放得比较乱.后来,发现有个更好的方法来管理图片等资源文件 --bundle文件. 1) ...
 - nodejs框架express4.x 学习--安装篇
			
一.安装建立项目 1.安装nodejs 2.安装express(全局) npm install -g express 默认安装的是4.12.4 3.由于在3.6版本之后项目构建器被单独拆分出来,所以还 ...
 - 通过css实现文本超出部分以省略号(......)代替
			
一.单行溢出 1,固定宽度(非常容易) text-overflow: ellipsis; 2,不固定宽度 思路:想让这个区域成为块元素,然后不换行,溢出隐藏. display: block; whit ...
 - Java 设计模式_复合模式(2016-08-31)
			
一.什么是复合模式? 在形式上,复合模式确实是多个模式的组合,但满足了这一条并不一定是复合模式,注意它的定义: 将多个模式结合起来形成一个“框架”,以解决一般性问题 一提到“框架”,可能最容易联想到的 ...