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

标签 javascript angularjs webview

我试图从 android webview 组件调用 AngularJS 服务,但没有成功...... 您知道我该怎么做吗?

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

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

提前致谢。

最佳答案

除非你有disabled debug data那么应用程序中的每个元素都有一个 scope() 函数,您可以调用该函数来获取该元素的范围。它还具有一个 injector() 函数,您可以使用它来获取应用程序的注入(inject)器实例。所以试试这个:

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

关于javascript - 如何从android webview调用AngularJS服务代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707637/

相关文章:

Android:MotionEvent.obtain 与 webview 不工作

android - 将 WebView 显示为 AlertDialog 内容

android - 如何在 Android Kitkat (4.4) 中以编程方式向 webView 输入字段提供输入

javascript - Jquery SimpleModal : what is the purpose of the container?

javascript - 如何从 Angular/Typescript 中的外部 javascript 文件更新变量

javascript - AngularJS 观察所有输入以获得焦点

javascript - 如何回到两个 View 状态(类似于 $window.history.go(-2))?

javascript - 从 iframe 获取网站的域名

javascript - NodeJS 代码不工作

javascript - ionic : How is it possible to change $ionicPopup subTitle's text programmatically?