Atitit.android jsbridge v1新特性
Atitit.android jsbridge v1新特性
1. Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的、只是参数url的写法不一样而已1
3. Js调用android java通过jsbridge2
5. WebView Error calling method on NPObject5
只能返回str类型,要死obj类型,就是{}的...js提示是个obj,json2str是个{}...空的对象..
1. Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的、只是参数url的写法不一样而已
// 无参数调用
contentWebView.loadUrl("javascript:javacalljs()");// 传递参数调用
2. 三、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写业务脚本、以提升加载速度、改善用户体验
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3. Js调用android java通过jsbridge
function btn()
{
try{
var r=jsBridge.invoke("com.example.atiplat_vodcp.browExtObj.retStr","testStr..");
alert("raw r:"+r);
try{
r=JSON.stringify(r);
}catch(e){
alert( "str2json e:"+e);
}
alert("ret from jsbrd:"+r);
}catch(e)
{
alert(e);
}
}
4. JsBridge
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
import java.net.URLEncoder;
import java.util.concurrent.Callable;
import org.apache.commons.lang3.reflect.ConstructorUtils;
import org.apache.commons.lang3.reflect.MethodUtils;
import com.attilax.exception.ExUtil;
import com.attilax.ref.refx;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.widget.Toast;
public class JsBridge {
public static String getTrace(Throwable t) {
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter);
t.printStackTrace(writer);
StringBuffer buffer = stringWriter.getBuffer();
return buffer.toString();
}
MainActivity mainActivity;
public JsBridge(MainActivity mainActivity2) {
mainActivity = mainActivity2;
}
// sdk17�汾���ϼ���ע�� solu click btn ma fein ..
@JavascriptInterface
public String invoke(final String method, final Object... p1) {
String classname = refx.getClassName(method);
String meth_name = refx.getMethodName(method);
Object o;
boolean flag = true;
String trace = "$def e";
try {
o = ConstructorUtils.invokeConstructor(Class.forName(classname),
null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// throw new RuntimeException(e);
flag = false;
trace = ExUtil.getTrace(e);
return trace;
}
if (flag) {
try {
return (String) MethodUtils.invokeMethod(o, meth_name, p1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
// throw new RuntimeException(e);
trace = ExUtil.getTrace(e);
return trace;
}
}
// Handler handler = new Handler();
// // Callable<V>
// handler.post(new Runnale(){
//
// public void run(){
//
// // 更新UI界面元素代码
//
// }
//
// });
// handler.
return trace;
}
5. WebView Error calling method on NPObject
直接android throw yg ex.走中个兰..不个ex try给挂摇..转换成个str输出出来走ok兰...
Atitit.android jsbridge v1新特性的更多相关文章
- Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39
Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39 V8 重构iocutilV4,use def iocFact...jettyUtil V ...
- Atitit. Atiposter 发帖机 新特性 poster new feature v11 .docx
Atitit. Atiposter 发帖机 新特性 poster new feature v11 .docx 1.1. 版本历史1 2. 1. 未来版本规划2 2.1. V12版本规划2 2.2. ...
- Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39
Atitit. Atiposter 发帖机 新特性 poster new feature v7 q39 V1 初步实现sina csdn cnblogs V2 实现qzone sohu 的发帖 ...
- Atitit hre框架v5 新特性 HREv5
Atitit hre框架v5 新特性 HREv5 1. V5新特性 apiurl2="/wrmiServlet";1 2. V1 新特性1 3. V2 新特性 添加php版1 ...
- Atitit.atijson 类库的新特性设计与实现 v3 q31
Atitit.atijson 类库的新特性设计与实现 v3 q31 1. V1版本---集成了多引擎1 2. V2版本新特性 --bsh脚本化2 3. V3版本新特性---循环引用解决使用fastjs ...
- atitit.ntfs ext 文件系统新特性对比
atitit.ntfs ext 文件系统新特性对比 1. 现代文件系统应该有的特性2 1.1. 恢复Log2 1.2. 压缩2 1.3. Meta ext2 1.4. Fulltextཟsearch ...
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
Atitit.业务系统的新特性 开发平台 新特性的来源总结 1.1. 语言新特性(java c# php js python lisp c++ oc swift ruby go dart1 1.2. ...
- Atitit mac os 版本 新特性 attilax大总结
Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0) 1984年2 2.2. Mac OS 7. ...
- Android 5.X新特性之为RecyclerView添加下拉刷新和上拉加载及SwipeRefreshLayout实现原理
RecyclerView已经写过两篇文章了,分别是Android 5.X新特性之RecyclerView基本解析及无限复用 和 Android 5.X新特性之为RecyclerView添加Header ...
随机推荐
- [BZOJ1143][CTSC2008]祭祀river(Dilworth定理+二分图匹配)
题意:给你一张n个点的DAG,最大化选择的点数,是点之间两两不可达. 要从Dilworth定理说起. Dilworth定理是定义在偏序集上的,也可以从图论的角度解释.偏序集中两个元素能比较大小,则在图 ...
- 【找规律】Codeforces Round #392 (Div. 2) C. Unfair Poll
C. Unfair Poll time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 【函数式权值分块】【分块】bzoj1901 Zju2112 Dynamic Rankings
论某O(n*sqrt(n))的带修改区间k大值算法. 首先对序列分块,分成sqrt(n)块. 然后对权值分块,共维护sqrt(n)个权值分块,对于权值分块T[i],存储了序列分块的前i块的权值情况. ...
- python3开发进阶-Djamgo框架中的JSON和AJAX
阅读目录 什么是JSON 什么是AJAX AJAX常见的应用情景 jQery实现AJAX AJAX请求如何设置csrf_token AJAX上传文件 补充Django内置的serializers 一. ...
- python3开发进阶-Django框架的ORM常用字段和参数
阅读目录 常用字段 字段合集 自定义字段 字段参数 关系参数 多对多的关联关系的三种方式 一.常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中 ...
- Delphi 自动检测U盘插入、拔出及获取U盘盘符!
http://qqhack8.blog.163.com/blog/static/1141479852012102133475/ Delphi 自动检测U盘插入.拔出及获取U盘盘符! u盘的 插 ...
- [shell 编程] if [ $# -eq 0 ]该语句是什么含义?
$0: shell或shell脚本的名字$*:以一对双引号给出参数列表$@:将各个参数分别加双引号返回$#:参数的个数$_:代表上一个命令的最后一个参数$$:代表所在命令的PID$!:代表最后执行的后 ...
- GNURADIO简单运用
本文是关于 RF hacking..所以这个就此不表…还是让我们来看看关键的无线解锁器吧..通常我们 hacking 一个无线设备的第一步就是找到目标的工作频率. 我们可以通过每个无线设备自带的FCC ...
- Linux GPRS模块问题
这是一个硬件问题,不过被我这个学软件的给遇到了.很尴尬,纠结了很久. GPRS模块如果没有插上sim卡,开机之后一切正常.一旦插上卡之后开机大约过十秒钟之后会自动关机.并在串口上面打印一下信息: II ...
- Spark(十) -- Spark Streaming API编程
本文测试的Spark版本是1.3.1 Spark Streaming编程模型: 第一步: 需要一个StreamingContext对象,该对象是Spark Streaming操作的入口 ,而构建一个S ...