gpt4 book ai didi

javascript - 如何将 Blob 对象从 javascript 传递到 Android?

转载 作者:太空狗 更新时间:2023-10-29 13:10:12 26 4
gpt4 key购买 nike

我有一个 Blob我的 WebView 中的对象,如何将它传递给 Android?
我想将它保存到设备上的本地文件。

我一直在尝试使用:

var url = webkitURL.createObjectURL(myBlob);

但我无法将其下载到设备。

最佳答案

我还没有尝试过这个,但我能够找到一些信息指向 Javascript 接口(interface)与 WebView 的用法。基本上,您可以分配 Java 类使其像 WebView 中的 Javascript 类一样工作(并在双方之间交换信息)。我不是 JavaScript 对象类型的专家,所以我会把它留给你。

首先,创建一个 JavaScriptHandler 类,并引用您控制 WebView 的 Activity :

public class JavaScriptHandler {
MyActivity parentActivity;

public JavaScriptHandler(MyActivity activity) {
parentActivity = activity;
}

public void doSomething(<Your blob format> data){
// .............
// ..Some code..
// .............
}
}

之后,您将在主 Activity 中将 JavaScriptHandler 添加到 WebView。不要忘记在您的 WebView 中启用 JavaScript!

myWebView = (WebView)this.findViewById(R.id.myWebView);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new JavaScriptHandler(this), "MyHandler");

传递给 addJavaScriptInterface() 的第一个参数是 JavaScript 接口(interface)对象本身。第二个参数是JavaScript接口(interface)对象绑定(bind)的全局JavaScript变量的名称。

现在您要做的就是使用 JavaScript 调用您的 Java 方法。

<html>
<head>
<script type="text/javascript">
function sendBlob() {
MyHandler.doSomething(<Your Blob>);
}
</script>
</head>

<body>
<form>
<input type="button" value="Click me!" onclick="sendBlob()" />
</form>
</body>
</html>

关于javascript - 如何将 Blob 对象从 javascript 传递到 Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com