Flutter web: попытка вызвать не-функцию, например null: 'dart.global.myFunction'

Я видел и пробовал ответы на следующие вопросы SO:

Вопрос 1

Вопрос 2

Вот что я делаю:

Это мой код дротика:


@JS()
library t;

import "package:js/js.dart";

@JS("getHomeName")
external String getHostName();

Я добавил этот скрипт перед скриптом main.dart.js в index.html:


  <script>
    function getHostName(){
      return "HOST NAME from javascript" ;
    }
  </script>

И я получаю доступ к этой функции getHostName из другого файла dart, например:

import 'my_js_interface_thing' ; 
print("Got hostname : ${getHostName()}") ;

Но я получаю следующую ошибку:

Another exception was thrown: NoSuchMethodError: tried to call a non-function, such as null: 'dart.global.getHomeName'

Я полагаю, это как-то связано с тем, как я получаю доступ к функции getHostName из дротика? К сожалению, в package:js docs не указывается и не дается какой-либо пример кода, касающийся использования методов интерфейса из dart.


person Natesh bhat    schedule 24.03.2020    source источник
comment
Похоже, вы использовали другое имя для определения взаимодействия. @JS("getHomeName") вместо @JS("getHostName").   -  person Abhilash Chandran    schedule 25.03.2020
comment
О боже, я такой идиот. Спасибо, что правильно поняли ...   -  person Natesh bhat    schedule 25.03.2020
comment
я должен удалить этот вопрос?   -  person Natesh bhat    schedule 25.03.2020