recherche

Maison  >  Questions et réponses  >  le corps du texte

Autodesk Forge Viewer dans Sharepoint affiche uniquement le modèle noir

<p>Pour notre projet actuel, nous avons suivi ce tutoriel pour intégrer Forge Viewer dans Sharepoint. (https://aps.autodesk.com/blog/sharepoint-online-integration)</p> <p>Ensuite, nous avons configuré le projet dans React à l'aide de ce package npm. https://www.npmjs.com/package/react-forge-viewer. </p> <p>Après la migration du projet vers React, le visualiseur a perdu toute couleur et est devenu noir. </p> <p>Selon le message d'erreur, la propriété n'est toujours pas définie au chargement de la visionneuse. Ce problème ne s'est pas produit lors de l'utilisation uniquement de SPFX, mais uniquement après avoir utilisé React. </p> <p>Merci beaucoup pour votre aide ! </p> <p>Message d'erreur</p> <p>Visionneuse incolore</p>
P粉265724930P粉265724930449 Il y a quelques jours527

répondre à tous(1)je répondrai

  • P粉884548619

    P粉8845486192023-09-03 18:40:35

    On dirait que le projet react-forge-viewer (développé par la communauté) n'a pas été mis à jour au cours des 3 dernières années. Pour exclure tout problème dans ce projet, je recommande de le remplacer par votre propre wrapper React simple. Quelque chose comme :

    • Ajoutez une dépendance de visionneuse à votre HTML :
      • <link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.css">
      • <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/viewer3D.js"></script>
    • Créez un simple wrapper React qui code temporairement en dur le jeton d'accès et l'URN du modèle :
    // Viewer.js
    
    import React from 'react';
    import './Viewer.css';
    
    const Autodesk = window.Autodesk;
    const ACCESS_TOKEN = '...';
    const URN = '...';
    
    async function initializeViewer(container) {
        return new Promise(function (resolve, reject) {
            Autodesk.Viewing.Initializer({ accessToken: ACCESS_TOKEN }, function () {
                const viewer = new Autodesk.Viewing.GuiViewer3D(container);
                viewer.start();
                resolve(viewer);
            });
        });
    }
    
    async function loadModel(viewer, urn) {
        return new Promise(function (resolve, reject) {
            function onDocumentLoadSuccess(doc) {
                resolve(viewer.loadDocumentNode(doc, doc.getRoot().getDefaultGeometry()));
            }
            function onDocumentLoadFailure(code, message, errors) {
                reject({ code, message, errors });
            }
            Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
        });
    }
    
    class Viewer extends React.Component {
        constructor(props) {
            super(props);
            this.ref = React.createRef();
            this.viewer = null;
        }
    
        componentDidMount() {
            if (!this.viewer) {
                this.viewer = initializeViewer(this.ref.current);
                this.viewer.then(viewer => loadModel(viewer, URN));
            }
        }
    
        render() {
            return (
                <div className="viewer" ref={this.ref}>
                </div>
            );
        }
    }
    
    export { Viewer };
    
    /* Viewer.css */
    
    .viewer {
        position: relative;
        width: 800px;
        height: 600px;
    }
    
    • Enfin, insérez le composant <Viewer /> dans votre application.

    Si le problème persiste même avec ce simple composant React, essayez d'utiliser le composant dans une application React autonome pour exclure tout problème potentiel introduit par l'environnement Sharepoint.

    répondre
    0
  • Annulerrépondre