Mauiie 2014-09-28 07:43 采纳率: 0%
浏览 1455

android 中无法定义js中的复杂对象

下面是微信提供一个查看图片的接口,实现方式应该就是在android中使用addJavascriptInterface方法
WeixinJSBridge.invoke('imagePreview', {
'current' : dsrc,
'urls' : imgsSrc[gid]
});

问题如下
// for image review
webView.addJavascriptInterface(new Object(){
@android.webkit.JavascriptInterface
public void invoke(final String src,final Object o){
new Handler().post(new Runnable()
{
@Override
public void run()
{
showmsg( src + " __ " + o, 0);
}
});
}
}, "WeixinJSBridge");
后面一个参数就是js中的{'current' : dsrc,'urls' : imgsSrc[gid]}对象,
现在不管是Object String Map json 还是什么对象都接收不到,求指点我该用什么类型来定义这个参数。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 19:03
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要将JavaScript对象传递给Android应用,你需要确保你的Java和JavaScript之间的通信是安全的。这通常意味着你不能直接从JavaScript向Java发送敏感数据或资源。如果你正在处理图片等资源,你可以考虑以下几种方法:

    1. 使用文件共享:可以使用FileInputStreamFileOutputStream或者FileReader/FileWriter来读写文件。这种方式允许你在本地保存资源,并通过网络进行传输。

    2. 使用临时文件:创建一个新的文件(例如temp.jpg),然后将图像内容写入到它上面。之后,将临时文件移动到服务器端并将其上传。

    3. 使用HTTPS:如果可能的话,尝试使用HTTPS而不是HTTP来传输数据。这样,你的应用程序和服务器之间的数据交换将是加密的,从而增加了安全性。

    4. 使用Web Socket:如果条件允许,可以考虑使用WebSocket协议来实现实时数据交换。这种方法需要更复杂的开发工作,但可以提供更高的实时性和可靠性。

    5. 使用XMLHttpRequest:虽然不是最推荐的方法,但如果必须使用,可以使用XMLHttpRequest来请求服务器上的资源。XMLHttpRequest会自动处理安全方面的相关问题。

    6. 使用WebSocket:这是一种更现代的方法,用于实时数据交换。虽然相对复杂,但提供了很高的性能和稳定性。

    7. 使用第三方库:有一些专门针对跨平台API调用的库,比如Apache Commons HTTP Library,它们提供了很多实用的功能,包括处理HTTP请求和响应。

    请根据你的具体需求和可用的技术栈选择合适的方式。希望这些信息对你有所帮助!

    评论

报告相同问题?