В онлайн-надстройках Office365 я могу достичь единого входа
Но когда я пытаюсь сделать то же самое в настольном приложении Offline Office365, я сталкиваюсь с проблемой, потому что я не могу загрузить файл js на HTML-странице, которая открыта в диалоге надстройки Office365
Office.context.ui.displayDialogAsync(
`${window.location.origin}/o365-redirect`, {
height: 30,
width: 30
},
asyncResult => {
dialog = asyncResult.value;
`enter code here`
dialog.addEventHandler(
Microsoft.Office.WebExtension.EventType.DialogMessageReceived,
processMessage
);
setTimeout(() => {
if (!getResults && dialog) {
dialog.close();
this.setState({
showSSOError: true
});
}
}, 30000);
}
);
Ниже приведен HTML-код, отображаемый в диалоговом окне, которое открывается с использованием вышеуказанного кода.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<style>
p {
width: 100%;
text-align: center;
}
</style>
</head>
<body>
<div>
<p class="ms-font-m" id="info">Please wait for this window to close, before continuing with the add-in.</p>
</div>
<script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script type="text/javascript">
Office.initialize = () => {
const ssoLink = localStorage.getItem("ssoLink");
if (ssoLink) {
localStorage.removeItem("ssoLink");
document.location.href = `${ssoLink}`;
} else {
let messageObject = {};
let link = document.location.search.substring(1).split('&');
link.forEach(el => {
let param = el.split('=');
messageObject[param[0]] = param[1]
});
let jsonMessage = JSON.stringify(messageObject);
Office.context.ui.messageParent(jsonMessage);
}
}
</script>
</body>
</html>
Файл JS прекрасно загружается, когда я открываю свою надстройку в Интернете Office365, но не удается загрузить, когда я использую эту надстройку в настольном приложении Office365.
Пожалуйста, помогите мне, ребята, здесь заблокированы.