我正在尝试使用Flutter从网站下载文件。我首先使用evaluateJavaScript更改一些值,然后单击生成按钮,这个按钮应该会将相应的pdf文件下载到手机。
以下是我的代码:
InAppWebView(
initialUrl: '...',
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
debuggingEnabled: true,
useOnDownloadStart: true,
javaScriptEnabled: true,
),
),
//javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (InAppWebViewController webViewController) {
_controller = webViewController;
},
onLoadStop: (_controller ,url) async {
await _loadData();
_controller.evaluateJavascript(source:
"console.log(document.getElementById('field-lastname').value = '${data[Field.name]}' );"
+"console.log(document.getElementById('generate-btn').click());"
);
},
onDownloadStart:(_controller,url) async{
print("onDownloadStart $url");
final taskId = await FlutterDownloader.enqueue(
url: url,
savedDir: (await getExternalStorageDirectory()).path,
showNotification: true, // show download progress in status bar (for Android)
openFileFromNotification: true,);
},
),
打印出来的URL就像这个样子
onDownloadStart blob:https://example.com/a2a5316c-9290-4da7-8a2a-9f899861046a
这里是控制台:
有人能帮我吗?
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: FormatException: Invalid character (at character 23) formats-officedocument.spreadsheetml.sheet;base64,UEsDBAoAAAAAAPJukFIAAAAAA...
。 - Nazarudin方法未定义
。也许你忘记添加一些代码了? - Nazarudin