Autodesk Forge Viewer dalam Sharepoint hanya menunjukkan model hitam
P粉265724930
P粉265724930 2023-09-02 20:17:59
0
1
517
<p>Untuk projek semasa kami, kami mengikuti tutorial ini untuk menyepadukan Forge Viewer ke Sharepoint. (https://aps.autodesk.com/blog/sharepoint-online-integration)</p> <p>Kemudian kami menyediakan projek dalam React menggunakan pakej npm ini. https://www.npmjs.com/package/react-forge-viewer. </p> <p>Selepas memindahkan projek ke React, penonton kehilangan semua warna dan bertukar menjadi hitam. </p> <p>Menurut mesej ralat, sifat itu masih tidak ditentukan apabila pemapar dimuatkan. Masalah ini tidak berlaku apabila hanya menggunakan SPFX, hanya selepas menggunakan React. </p> <p>Terima kasih banyak atas bantuan anda! </p> <p>Mesej ralat</p> <p>Pemerhati Tanpa Warna</p>
P粉265724930
P粉265724930

membalas semua(1)
P粉884548619

Nampaknya projek (komuniti maju) react-forge-viewer tidak dikemas kini dalam tempoh 3 tahun yang lalu. Untuk menolak sebarang isu dalam projek ini, saya syorkan anda menggantikannya dengan pembalut React ringkas anda sendiri. Sesuatu seperti:

  • Tambahkan pergantungan penonton pada HTML anda:
    • <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>
  • Buat pembungkus React ringkas yang mengekodkan token akses dan model URN buat sementara waktu:
// 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;
}
  • Akhir sekali, masukkan komponen <Viewer /> ke dalam aplikasi anda.

Jika masalah berterusan walaupun dengan komponen React yang ringkas ini, cuba gunakan komponen tersebut dalam aplikasi React kendiri untuk menolak sebarang isu yang berpotensi yang diperkenalkan oleh persekitaran Sharepoint.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan