在线表格编辑器 license 过期问题
本帖最后由 Joestar.Xu 于 2024-7-11 10:56 编辑调研编号:SJS-25346
过期后,在线表格设计器代码执行时,会抛如下错误
这里能不能直接抛错 license 过期?
您好,当SpreadJS的授权过期后,会直接在页面上显示如下图的过期信息:
这个时候使用者就会意识到授权已经过期,为什么还要直接抛出一个错误来提示授权过期呢?
另外,具体是调用了哪些代码才会在授权过期时出现这些问题呢? Joestar.Xu 发表于 2024-6-28 16:56
您好,当SpreadJS的授权过期后,会直接在页面上显示如下图的过期信息:
你好,上面是 表格设计器 Designer 组件在 license 过期后的抛错,不是 SpreadJS, 再给看一下的呢?
您好,如上图,设计器也会和SpreadJS一样在界面上显示无效授权的字样。本地测试中也没有出现报错的情况。需要您提供一个可以复现此问题的Demo,这边结合实际Demo调研看看呢。
本帖最后由 innerwang 于 2024-7-10 16:33 编辑
Joestar.Xu 发表于 2024-7-1 15:25
您好,如上图,设计器也会和SpreadJS一样在界面上显示无效授权的字样。本地测试中也没有出现报错的情况 ...
问题原因出现在,后续还会进行一些 designer 的自定义配置,此时就会导致抛错
有没有什么方式,可以在注册完 license 后知道是否已经过期?
您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。 您好,SpreadJS原生上没有提供相关的接口可以检查license的注册情况,不过您可以在系统运行前执行一个检查来判断授权是否有效:
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'
import '@grapecity/spread-sheets-resources-zh'
import * as GC from '@grapecity/spread-sheets-designer'
function getDefaultLicense() {
return {
SHEETS_LICENSE_KEY: 'guanyuanshuju,776598819366453#B1nSyzcjZUVRFXOvIVWi3UcFNjWoNFNI9WZWtUZGVEN6lzUnt4d6kXR5UWQyEUV9Qlc7ZGVGdGRVFUe6BVbUpXOINzKtBDeYxmVMd4cvYVTkBlQHlkewE5VpVjRHhHODpkamBlWR3yK4FUZodUYNBDWO3maa9GUp5EeLdzUIRnUuVzRLJWdzJ4VHl4b9I7VSBFevolYYpERsd4a8AHb4wUciNkVZVDV9kHW7onah56U8JDavc7ZWVjVGRlcvVEOQVVWG3yL6ATSaZ4UyQFb7R7Yq9GWSRkSYVXSZFHVP9UVtxGZLp7aYd7MvkVaUZGOs3CaiojITJCLiI4MEBTOzQjNiojIIJCLygzMyETN8YzN0IicfJye&Qf35VficFVDplI0IyQiwiI6EjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIiNzkDMwEDI9AjNwMjMwIjI0ICdyNkIsIiNwITMzIDMyIiOiAHeFJCLi8ajmDblmz9voz9voL8po19tl7anmLiOiEmTDJCLiMTN4YjNzkTM8gTO5YzN7IiOiQWSiwSfdtlOicGbmJCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPRZUVFFneZVWOyYGZWJGVj3ycrtyTUt4QnFWbFBTdqZnQC9WOy5UOhh6QPdjV6YUe9gFVvgTM5UES9siT8glWj3CW8cGdq94ds5GezJWQnJjYCVFVRN6KvxmVQJDT5NDZ5V5jmu0',
SHEETS_DESIGNER_LICENSE_KEY: 'guanyuanshuju,666326449326546#B1k4y9QkbV9UQ7d4dCd6bwMXMyokNBJDT7JUTwxUOyMHRVdWTnRHdItGZ8YlW6ZmY7A5QRJXNuZzMYN4RIpmdXFGVQZWNVdzTwEEey4UT5FFZ4pnVnJUTR5mQqZ4TqpmbodGCKBFW034bJdTSWhkZihnbPhnRxdDbzgEayAVdKxGaLZlbntyYqhlMJJjaStCZod5UvYUVWpnM92mc0dmaXlzVEtWYjpFaKZmUMpmViVGUDR5Q8FmSuVndWhjQn3EOup7Vs5kRrNzKGhzZoFEcxF6L6hTV8YmRS3EcvVDdVZVSuNTSxQmQatmUiojITJCLiEjMwU4NzYkI0ICSiwCM6kzNxcDM7MTM0IicfJye&Qf35Vfi4EU9cjI0IyQiwiI6EjL6BibvRGZB5icl96ZpNXZE5yUKRWYlJHcTJiOi8kI1tlOiQmcQJCLiUDNwEDMxASOwYDMzIDMyIiOiQncDJCLiYDMyEzMyAjMiojIwhXRiwiIu6o9wWp9c+L0c+L0CeK0eeb9t6p9iojIh94QiwiI6QTN6IzM9QDN6IzM6YjNiojIklkI1pjIEJCLi4TPRF4Nlx4YI3SY4dXSj3GWwkXYR34Y8VUOtd6ciZVMvEzb9ljerJ5VqlTMsFzTXlWejpWeDd7S8UnRNJkYO3iRmhzMNVGZydmR8Bldw3SR7pWUWdDW4YDS6IUZRdDV5hEN78mZycVaEV6Q0EFP5',
}
}
function registerLicenseKey() {
if (!GC) return
const license = getDefaultLicense()
if (!GC.Spread.Sheets.LicenseKey) {
GC.Spread.Sheets.LicenseKey = license.SHEETS_LICENSE_KEY
}
if (!GC.Spread.Sheets.Designer.LicenseKey) {
GC.Spread.Sheets.Designer.LicenseKey = license.SHEETS_DESIGNER_LICENSE_KEY
}
}
registerLicenseKey();
let invalidLicense = false;
try {
debugger;
let dummyDom = document.createElement('div');
let designer = new GC.Spread.Sheets.Designer.Designer(dummyDom);
designer.setConfig({ ...GC.Spread.Sheets.Designer.DefaultConfig });
} catch (e) {
invalidLicense = true;
document.body.innerHTML = `<h1>Invalid License</h1>`;
}
if (!invalidLicense) {
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App />
</React.StrictMode>
)
} Joestar.Xu 发表于 2024-7-12 12:13
您好,SpreadJS原生上没有提供相关的接口可以检查license的注册情况,不过您可以在系统运行前执行一个检查 ...
所以意思是,只要设置配置出错,就一定是 license 过期吗? 您好,这里仅是一个思路供您参考,并不代表着出错了以后license为过期,正如我楼上所述,原生上没有接口可以判断license的注册情况。 Joestar.Xu 发表于 2024-7-15 17:26
您好,这里仅是一个思路供您参考,并不代表着出错了以后license为过期,正如我楼上所述,原生上没有接口可 ...
好的,了解了,谢谢。
那么,是否可以考虑提供一个这样的接口呢?
页:
[1]
2