Я видел и пробовал ответы на следующие вопросы SO:
Вопрос 1
Вопрос 2
Вот что я делаю:
Это мой код дротика:
@JS()
library t;
import "package:js/js.dart";
@JS("getHomeName")
external String getHostName();
Я добавил этот скрипт перед сценарием main.dart. js в индексе. html:
<script>
function getHostName(){
return "HOST NAME from javascript" ;
}
</script>
И я получаю доступ к этой функции getHostName из некоторого другого файла дротика, например, так:
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
не указывают и не дают никаких примеров кода, касающихся использования методов интерфейса изнутри dart.