安卓+h5之间如何通讯?

安卓+X5内核+vue开发的app,安卓和h5之间如何通讯?

运行后h5的地址是:file:///android_asset/dist/index.html
安卓和h5通讯使用了@JavascriptInterface注解,可直接在h5中调用app的方法。但是它只能传输基本类型(字符串,数字,Boolean)。图片或其他复杂的数据无法传输。

尝试过在app中运行了http服务器(NanoHTTPD),页面通过http请求回去文件,但是这种方式不能使用http://127.0.0.1的地址。提示strict-origin-when-cross-origin,加了Access-Control-Allow-Origin请求头也不管用。

也尝试过把文件转为iso-8859-1的字符串,但在js中没能转换回文件。

请问还有什么方式可以通讯?
如何传输文件?
安卓中为什么不能使用http://127.0.0.1

http服务器,文件转字符串

阅读 1k
1 个回答

能传输基本类型(字符串,数字,Boolean)

图片或其他复杂的数据通过 编码 转成 字符串,接收方再对应 解码,就可以了

不想自己整 编解码,JSON 的库应该挺多的,图像转 data uri 应该也有很多现成代码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题