我們正在使用angularJS並使用spring/hibernate開發Web應用程序。 我們在生產環境中使用Linux操作系統,開發環境是Windows。我們正在嘗試在我們的應用程序中實現像ms-word一樣的在線文檔編輯工具。使用OnlyOffice在基於J2EE的Web應用程序中進行聯機文檔編輯 - 但回調URL不起作用
經過一番研究,我們使用OnlyOffice https://api.onlyoffice.com/。 我正在使用以下angularJs組件來使用唯一辦公室 https://github.com/legalthings/angular-onlyoffice 我們能夠將它與應用程序集成,我們可以在Web瀏覽器中的編輯器中看到打開的文檔。 但我的更改沒有被保存。控件沒有到達callBackUrl。
由於angularJs組件使用的onSave方法,該方法是不存在在OnlyOffice API anymore.So我已經在HTML改變了代碼和JS文件1位: - HTML文件的代碼是: -
<div ng-controller="DocumentEditController">
<onlyoffice-editor src="{{ trustSrc(document.src) }}"
title="{{ document.name }}">
</onlyoffice-editor>
</div>
和JS文件中的代碼是: -
angular.module('onlyoffice', []);
angular.module('onlyoffice').directive('onlyofficeEditor', [function() {
function key(k) {
var result = k.replace(new RegExp("[^0-9-.a-zA-Z_=]", "g"), "_") + (new
Date()).getTime();
return result.substring(result.length - Math.min(result.length, 50));
}
var getDocumentType = function (ext) {
if (".docx.doc.odt.rtf.txt.html.htm.mht.pdf.djvu.fb2.epub.xps".indexOf(ext) != -1) return "text";
if (".xls.xlsx.ods.csv".indexOf(ext) != -1) return "spreadsheet";
if (".pps.ppsx.ppt.pptx.odp".indexOf(ext) != -1) return "presentation";
return null;
};
return {
template: '<div id="onlyoffice-editor"></div>',
link: function ($scope, $element, $attrs) {
$scope.$watch(function() {
return $attrs.src;
}, function() {
if (!$attrs.src) return;
var docUrl = $attrs.src;
var docTitle = $attrs.title || docUrl;
var docKey = key(docUrl);
var docType = docUrl.split('?')[0].substring(docUrl.lastIndexOf(".") + 1).trim().toLowerCase();
var documentType = getDocumentType(docType);
var config = {
type: "desktop",
width: '100%',
height: '100%',
documentType: documentType,
document: {
title: docTitle,
url: docUrl,
fileType: docType,
key: docKey,
permissions: {
edit: true,
download: false
}
},
editorConfig: {
mode: 'edit',
callbackUrl:"/documentSave"
},
events: {
onReady: function() {alert("in on ready");
setTimeout(function() {
$scope.$apply(function() {
$scope.ready = true;
});
}, 5000);
},
onError: function (event) {
alert(event.data);
// var url = event.data;
// $scope.save({url: url, close: $scope.close});
},
}
};
//creating object editing
new DocsAPI.DocEditor("onlyoffice-editor", config);
});
}
}
}]);
我改變了documenSave使用本地主機和應用程序的名字也完全合格的名稱,但是那也是行不通的。 任何幫助是高度讚賞。
編輯
CallBackUrl被稱爲現在的瀏覽器按鈕的接近......但我們的要求是將文檔保存在保存按鈕的點擊。 在此先感謝。