Reputation:
I'm trying to call a java function via applet using Angular.js with no success. I'm not even getting the Applet loaded (java console is not starting when I load the app). I've used the approaches below without success. Any ideas?
Binding applet parameters with angularJS
PS: it's in Chrome and with the NPAPI enabled.
PS2: I get it with Knockout with the code below (we are migrating to Angular)
var res = document.getElementById("cdigApplet").signFile(file.id().toString(), "" , api.token);
signFile() is a method inside the Java Applet.
Html:
<applet id="cdigApplet" code="cdig.CDigApplet" archive="cdig-applet-1.0.jar, cdig-0.3.jar, json-20141113.jar" width="1" height="1" classloader_cache="false">
<param name="persistState" value="false" />
<param name="cache_option" value="no"/>
Thanks.
Upvotes: 2
Views: 3621
Reputation:
We got it with the code below:
index.html
<script>
<!-- applet id can be used to get a reference to the applet object -->
var attributes = { id:'cdigApplet', code:'cdig.CDigApplet', archive:'cdig-applet-1.0.jar, cdig-0.3.jar, json-20141113.jar', width:1, height:1, classloader_cache:'false'} ;
var parameters = {persistState: false, cache_option:'no' } ;
deployJava.runApplet(attributes, parameters, '1.8');
</script>
signController.js
(function() {
'use strict';
angular
.module('app')
.controller('signController', signController);
signController.$inject = ['$rootScope', '$scope','listFactory', 'infoService'];
/* @ngInject */
function signController($rootScope, $scope, listFactory, infoService) {
var vm = this;
var token = $rootScope.token;
$scope.name = infoService.getName;
////////////////
$scope.signFile = function () {
var fileId = infoService.getId();
var Id = fileId.toString();
var res = document.getElementById("cdigApplet").signFile(Id, '', token);
var json = JSON.parse(res);
if (json.success === true)
{
alert("Documento assinado com sucesso! Clique em 'Abrir' para ver a assinatura.");
$('#sign').modal('hide');
}
else
{
alert("Documento não assinado!\n" + json.message);
$('#sign').modal('hide');
}
};
}
})();
Upvotes: 2