外部スクリプトを Flutter WebView に読み込もうとしていますが、うまくいきません。特にtinyMCEについてです。そのため、WebView を内部に持つ AlertDialog でリッチ テキスト エディターを開くことを意図しています。それは可能ですか?
以下は私のhtmlです:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.2.1/tinymce.min.js"></script>
</head>
<body>
<textarea id="test"></textarea>
<script>
tinymce.init({
selector: 'textarea#test',
height: 500,
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | ' +
'bold italic backcolor | alignleft aligncenter ' +
'alignright alignjustify | bullist numlist outdent indent | ' +
'removeformat | help',
});
</script>
</body>
</html>
そして、それは私のウィジェットです:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class RichTextEditor extends StatefulWidget {
final String html;
const RichTextEditor({
this.html: '',
});
@override
RichTextEditorState createState() => RichTextEditorState();
}
class RichTextEditorState extends State<RichTextEditor> {
WebViewController _webViewController;
@override
Widget build(BuildContext context) {
final String source = Uri.dataFromString(
widget.html,
mimeType: 'text/html',
encoding: Encoding.getByName('utf-8'),
).toString();
return Container(
child: Material(
child: Column(
children: <Widget>[
Row(
children: <Widget>[
IconButton(
icon: Icon(Icons.close),
onPressed: () => Navigator.of(context).pop(),
),
],
mainAxisAlignment: MainAxisAlignment.end,
),
Expanded(
child: WebView(
initialUrl: source,
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController controller) {
_webViewController = controller;
_webViewController.loadUrl(source);
},
),
),
],
),
),
padding: EdgeInsets.all(10.0),
);
}
@override
void initState() {
super.initState();
}
}
コンソールに次のログが表示されます。
D/cr_Ime (30910): [InputMethodManagerWrapper.java:30] Constructor
W/cr_AwContents(30910): onDetachedFromWindow called when already detached. Ignoring
D/cr_Ime (30910): [InputMethodManagerWrapper.java:59] isActive: false
I/cr_Ime (30910): ImeThread is not enabled.
D/EGL_emulation(30910): eglMakeCurrent: 0x8a0f4ca0: ver 2 0 (tinfo 0x8976d190)
W/cr_BindingManager(30910): Cannot call determinedVisibility() - never saw a connection for the pid: 30910
D/cr_Ime (30910): [InputMethodManagerWrapper.java:59] isActive: true
D/cr_Ime (30910): [InputMethodManagerWrapper.java:68] hideSoftInputFromWindow
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
D/EGL_emulation(30910): eglMakeCurrent: 0xb1e05240: ver 2 0 (tinfo 0xb1e03310)
W/cr_BindingManager(30910): Cannot call determinedVisibility() - never saw a connection for the pid: 30910
D/cr_Ime (30910): [InputMethodManagerWrapper.java:59] isActive: true
D/cr_Ime (30910): [InputMethodManagerWrapper.java:68] hideSoftInputFromWindow
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
I/art (30910): Background sticky concurrent mark sweep GC freed 12(424B) AllocSpace objects, 0(0B) LOS objects, 0% free, 22MB/22MB, paused 10.801ms total 19.097ms
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
I/chromium(30910): [INFO:CONSOLE(9)] "Failed to initialize the editor as the document is not in standards mode. TinyMCE requires standards mode.", source: https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.2.1/tinymce.min.js (9)
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
W/art (30910): Attempt to remove non-JNI local reference, dumping thread
どんな助けでも大歓迎です。ありがとう!