injectJavascriptFileFromUrl method
Future<void>
injectJavascriptFileFromUrl({
- required WebUri urlFile,
- ScriptHtmlTagAttributes? scriptHtmlTagAttributes,
Injects an external JavaScript file into the WebView from a defined url.
scriptHtmlTagAttributes
represents the possible the <script>
HTML attributes to be set.
NOTE: This method shouldn't be called in the PlatformWebViewCreationParams.onWebViewCreated
or PlatformWebViewCreationParams.onLoadStart
events,
because, in these events, the WebView
is not ready to handle it yet.
Instead, you should call this method, for example, inside the PlatformWebViewCreationParams.onLoadStop
event or in any other events
where you know the page is ready "enough".
NOTE for Web: this method will have effect only if the iframe has the same origin.
Officially Supported Platforms/Implementations:
- Android native WebView
- iOS
- MacOS
- Web
Implementation
@override
Future<void> injectJavascriptFileFromUrl(
{required WebUri urlFile,
ScriptHtmlTagAttributes? scriptHtmlTagAttributes}) async {
assert(urlFile.toString().isNotEmpty);
var id = scriptHtmlTagAttributes?.id;
if (scriptHtmlTagAttributes != null && id != null) {
_injectedScriptsFromURL[id] = scriptHtmlTagAttributes;
}
Map<String, dynamic> args = <String, dynamic>{};
args.putIfAbsent('urlFile', () => urlFile.toString());
args.putIfAbsent(
'scriptHtmlTagAttributes', () => scriptHtmlTagAttributes?.toMap());
await channel?.invokeMethod('injectJavascriptFileFromUrl', args);
}