私はWebViewScaffordを作成しましたが、WebViewからの閲覧中に何もダウンロードできません、私は作ったボタンをクリックしていません。ダウンロードしてプレビューすることができる他のブラウザのように、どこに始まるのかわかりません、私はここで同じことを達成しようとしています。
class AppState extends State<App> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
Align(
alignment: Alignment(1, 1),
child: Container(
child: Web(), // it is a statefulwidget that have WebviewScaffold, i have created it on a new page and imported/used here
),
),
Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20.0),
)
],
),
Align(
alignment: Alignment(0.7, -0.93),
child: FloatingActionButton(
tooltip: "Share",
child: Icon(
Icons.share,
color: Colors.amberAccent,
),
onPressed: () {
_onShareTap();
}),
),
],
),
);
}
_
WebView内の印刷またはダウンロードボタンをクリックすると、他のブラウザのように機能するはずです。
HTMLページの所有者である場合は、私にとって働く回避策を確認できます。 HTMLページ addonclickonclick( - === - )関数の関数:
function downloadpdf() {
var currentHref = window.location.href;
window.history.pushState(null, null, '/app/somepdf.pdf');
setTimeout(() => window.location.replace(currentHref), 1000);
}
_
Flutter Codeでリスナーを追加します。
StreamSubscription<String> _onWebViewUrlChanged;
_onWebViewUrlChanged =
FlutterWebviewPlugin().onUrlChanged.listen((String url) {
if (url.contains('.pdf')) {
launchURL(url);
}
});
_
launchurlは外部ブラウザウィンドウで定義済みのURLを開きます。そのため、Flutter_WebView_PluginからPDF/etcをダウンロードできます。
あなたはあなたのアプリ固有のJS/Flutter Magicを追加する必要があります