AngularJS“sendJavascript”cordova插件调用工厂函数

时间:2014-09-02 14:11:46

标签: angularjs angularjs-scope

我有一个Cordova插件,做一些webservice认为,我希望它使用sendJavascript android命令在WebView上调用角度工厂函数。

我有另一个没有angularjs的项目。

AngularJS工厂

....
.factory('playerService', function(){
    var title = "Tryk på play";

    var setTitle = function(t) {
        title = t;
    }
    var getTitle = function() {
        return title;
    }

    return {
        setTitle : setTitle,
        getTitle : getTitle
    }
})
....

Cordova插件

....
cordova.webView.sendJavascript("javascript: playerService.setTitle('test test');
....

我得到了一个“playerService”未定义 - 在logcat android输出中。

1 个答案:

答案 0 :(得分:0)

最后我得到了一个解决方案......

1)首先我要选择DOM中的一个元素是在范围内。在我的例子中,我有一个带有ID播放按钮的div

cordova.webView.sendJavascript("javascript: angular.element(document.querySelector('#playbuttons')).scope().$apply(function() {angular.element(document.querySelector('#playbuttons')).scope().playerService.setTitle('TESTING')})");

我认为这非常hacky,所以如果有人能纠正我,那么感觉自由;)