Atitit.android
 jsbridge v1新特性

 

  1. Java代码调用js并传参其实是经过WebView的loadUrl方法去调用的、只是参数url的写法不相同要现已1

  2. 其三、JAVA及JS交互注意事项1

  3. Js调用android java通过jsbridge2

  4. JsBridge3

  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://blog.csdn.net/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 (StringMethodUtils.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兰…

 

相关文章

网站地图xml地图