我试图从android webview组件调用AngularJS服务但没有成功... 你知道我怎么能这样做吗?
这是我试图调用的java脚本代码:
view.loadUrl("javascript:$rootScope.myService.hello()");
提前致谢。
答案 0 :(得分:2)
除非你有disabled debug data,否则你的应用中的每个元素都有一个scope()
函数,你可以调用它来取回该元素的范围。它还有一个injector()
函数,可用于取回应用程序的注入器实例。所以试试这个:
javascript:angular.element('[ng-app]').injector().get('myService').hello()
最好只在窗口上公开你需要访问的功能。
那么你需要做这样的事情:
angular.module('myApp').service('myService', function(yourDependencies..., $window) {
//Your code
$window.hello = this.hello;
});
然后您的Android代码变为:
view.loadUrl("javascript:hello()");