如何从android webview调用AngularJS服务代码?

时间:2016-01-10 16:07:39

标签: javascript angularjs webview

我试图从android webview组件调用AngularJS服务但没有成功... 你知道我怎么能这样做吗?

这是我试图调用的java脚本代码:

view.loadUrl("javascript:$rootScope.myService.hello()");

提前致谢。

1 个答案:

答案 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()");