Closed is1988 closed 6 years ago
public class JsApi {
@JavascriptInterface
public void getNative(Object msg) {
User[] users = new User[1];
users[0] = new User("android", "10");
dwebView.callHandler("setView", users, new OnReturnValue<Integer>() {
@Override
public void onValue(Integer retValue) {
//showToast(retValue);
}
});
}
}
// 原生的调用 接收user对象
dsBridge.register('setView', function (obj) {
alert(obj)
})
// js页面上的按钮 点击后调用原生getNative
function call() {
dsBridge.call("getNative", "1")
}
但是alert的时候提示的是空
public class JsApi {
@JavascriptInterface
public void getNative(Object msg) {
//User user = new User("android", "10");
dwebView.callHandler("setView", new Object[]{"{\"name\":\"android\",\"address\":\"北京市西城区\",\"age\":25}"}, new OnReturnValue<Integer>() {
@Override
public void onValue(Integer retValue) {
//showToast(retValue);
}
});
}
}
dsBridge.register('setView', function (data) {
alert(data)
var json = JSON.parse(data);
alert(json.address)
})
改成传json串后正常,看到文档你说fly.js可以解决ajax跨域请求问题,研究ing
看了DEMO只看到传数组,请问原生如何传递实体给js,大概需求是原生调用服务器返回json,转成实体后传给js解析渲染页面(或者直接给js传json,主要可能是我原生写的多,思维固定了)。 另外js里面是否可以直接做ajax请求,得到数据后直接自己渲染页面。因为js自己写的不是很好,还请大神指点一二。
你好,有同样的疑问,如果有网络请求数据的话我只能在JSapi里写网络请求吗,可是我希望在Activity里发起请求,请求到网络数据,再将事件注册并填入网络请求数据供前端调用,这种情况应该怎么处理呢。
看了DEMO只看到传数组,请问原生如何传递实体给js,大概需求是原生调用服务器返回json,转成实体后传给js解析渲染页面(或者直接给js传json,主要可能是我原生写的多,思维固定了)。 另外js里面是否可以直接做ajax请求,得到数据后直接自己渲染页面。因为js自己写的不是很好,还请大神指点一二。
你好,有同样的疑问,如果有网络请求数据的话我只能在JSapi里写网络请求吗,可是我希望在Activity里发起请求,请求到网络数据,再将事件注册并填入网络请求数据供前端调用,这种情况应该怎么处理呢。
目前项目中已经实现了,就是原生给JS传实体前,先转成JSON串,JS接收到后再转成实体,为了跨平台,大部分网络请求都使用ajax,这样android和iOS的原生代码量就很少,便于更多人维护。
看了DEMO只看到传数组,请问原生如何传递实体给js,大概需求是原生调用服务器返回json,转成实体后传给js解析渲染页面(或者直接给js传json,主要可能是我原生写的多,思维固定了)。 另外js里面是否可以直接做ajax请求,得到数据后直接自己渲染页面。因为js自己写的不是很好,还请大神指点一二。
你好,有同样的疑问,如果有网络请求数据的话我只能在JSapi里写网络请求吗,可是我希望在Activity里发起请求,请求到网络数据,再将事件注册并填入网络请求数据供前端调用,这种情况应该怎么处理呢。
目前项目中已经实现了,就是原生给JS传实体前,先转成JSON串,JS接收到后再转成实体,为了跨平台,大部分网络请求都使用ajax,这样android和iOS的原生代码量就很少,便于更多人维护。
我们的需求可以理解为,前端js传给我一个商品id,我原生去发请求,发完请求后注册事件并传入请求数据给前端js调用,流程就是 原生调前端→原生发请求,请求成功回调里注册事件给前端 →前端调原生并拿到请求数据,这种逻辑可能会有几层嵌套,这种用DSBridge一开始就加载好JSapi的写法实在不知道该如何下手,方便的话可以留一个沟通方式吗,希望可以详细请教一下。
看了DEMO只看到传数组,请问原生如何传递实体给js,大概需求是原生调用服务器返回json,转成实体后传给js解析渲染页面(或者直接给js传json,主要可能是我原生写的多,思维固定了)。 另外js里面是否可以直接做ajax请求,得到数据后直接自己渲染页面。因为js自己写的不是很好,还请大神指点一二。