Запустите некоторый файл Javascript, например index.js, в Flutter Webview. - PullRequest
4 голосов
/ 22 мая 2019

как я могу запустить файл Javascript в flutter_webview_plugin.Я пробую это с этим.

flutterWebViewPlugin.evalJavascript("require('./index.js');");

Но ничего не происходит.

когда я пытаюсь запустить код флаттера, он ничего не показывает

мой index.Js файл содержит простое предупреждениезаявление

alert('hello world');

1 Ответ

1 голос
/ 22 мая 2019

Сначала Вы использовали функцию «требуется». эта функция не реализована в самом javascript. это часть NodeJs . так что эта функция не будет работать.

Чтобы загрузить файл js во флаттер, вы должны рассмотреть его как текстовый файл и загрузить его правильно. Итак, вам нужно добавить файл в папку активов, добавить в файл pubspec, а затем загрузить его. читать полный ответ здесь

Во-вторых, вы использовали evalJavascript. эта функция может использоваться во многих различных ситуациях. но это будет работать, только если у вас есть панель просмотра.

Проверьте пример ниже:

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

main() async {
  String jsCode = await rootBundle.loadString('assets/javascript.js');

  runApp(new MaterialApp(
    home: LunchWebView(jsCode),
  ));
}

class LunchWebView extends StatelessWidget {
  final String text;
  LunchWebView(this.text);

  @override
  Widget build(BuildContext context) {
    final FlutterWebviewPlugin flutterWebviewPlugin = FlutterWebviewPlugin();
    flutterWebviewPlugin.launch('https://www.google.com');
    flutterWebviewPlugin.evalJavascript(text);
    return Container();
  }
}

ПРИМЕЧАНИЕ: : Я не обрабатывал перезагрузку и другие исключения. Вы должны проверить, открыт ли какой-либо объект webview, а затем вызвать метод Lunch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...