AngularJS "sendJavascript" cordova 插件调用工厂函数



我有一个Cordova插件,它可以进行一些Web服务思考,我希望它使用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) 首先,我在DOM中选择了一个元素,这个元素就在作用域中。在我的例子中,我有一个带有ID播放按钮的div

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

我觉得这我很生气,所以如果有人能纠正我,请放心;)