找回密码
 立即注册

QQ登录

只需一步,快速开始

innerwang

中级会员

90

主题

361

帖子

917

积分

中级会员

积分
917
innerwang
中级会员   /  发表于:2024-6-27 17:44  /   查看:1508  /  回复:12
本帖最后由 Joestar.Xu 于 2024-7-11 10:56 编辑

调研编号:SJS-25346

过期后,在线表格设计器代码执行时,会抛如下错误


这里能不能直接抛错 license 过期?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

12 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-28 16:56:49
沙发
您好,当SpreadJS的授权过期后,会直接在页面上显示如下图的过期信息:



这个时候使用者就会意识到授权已经过期,为什么还要直接抛出一个错误来提示授权过期呢?

另外,具体是调用了哪些代码才会在授权过期时出现这些问题呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-7-1 14:20:18
板凳
Joestar.Xu 发表于 2024-6-28 16:56
您好,当SpreadJS的授权过期后,会直接在页面上显示如下图的过期信息:

你好,上面是 表格设计器 Designer 组件在 license 过期后的抛错,不是 SpreadJS, 再给看一下的呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-1 15:25:28
地板


您好,如上图,设计器也会和SpreadJS一样在界面上显示无效授权的字样。本地测试中也没有出现报错的情况。需要您提供一个可以复现此问题的Demo,这边结合实际Demo调研看看呢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-7-10 16:26:33
5#
本帖最后由 innerwang 于 2024-7-10 16:33 编辑
Joestar.Xu 发表于 2024-7-1 15:25
您好,如上图,设计器也会和SpreadJS一样在界面上显示无效授权的字样。本地测试中也没有出现报错的情况 ...

问题原因出现在,后续还会进行一些 designer 的自定义配置,此时就会导致抛错



有没有什么方式,可以在注册完 license 后知道是否已经过期?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-10 17:47:15
6#
您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-12 12:13:36
7#
您好,SpreadJS原生上没有提供相关的接口可以检查license的注册情况,不过您可以在系统运行前执行一个检查来判断授权是否有效:

  1. import React from 'react'
  2. import ReactDOM from 'react-dom/client'
  3. import App from './App'
  4. import './index.css'
  5. import '@grapecity/spread-sheets-resources-zh'
  6. import * as GC from '@grapecity/spread-sheets-designer'


  7. function getDefaultLicense() {
  8.   return {
  9.     SHEETS_LICENSE_KEY: 'guanyuanshuju,776598819366453#B1nSyzcjZUVRFXOvIVWi3UcFNjWoNFNI9WZWtUZGVEN6lzUnt4d6kXR5UWQyEUV9Qlc7ZGVGdGRVFUe6BVbUpXOINzKtBDeYxmVMd4cvYVTkBlQHlkewE5VpVjRHhHODpkamBlWR3yK4FUZodUYNBDWO3maa9GUp5EeLdzUIRnUuVzRLJWdzJ4VHl4b9I7VSBFevolYYpERsd4a8AHb4wUciNkVZVDV9kHW7onah56U8JDavc7ZWVjVGRlcvVEOQVVWG3yL6ATSaZ4UyQFb7R7Yq9GWSRkSYVXSZFHVP9UVtxGZLp7aYd7MvkVaUZGOs3CaiojITJCLiI4MEBTOzQjNiojIIJCLygzMyETN8YzN0IicfJye&Qf35VficFVDplI0IyQiwiI6EjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIiNzkDMwEDI9AjNwMjMwIjI0ICdyNkIsIiNwITMzIDMyIiOiAHeFJCLi8ajmDblmz9voz9voL8po19tl7anmLiOiEmTDJCLiMTN4YjNzkTM8gTO5YzN7IiOiQWSiwSfdtlOicGbmJCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPRZUVFFneZVWOyYGZWJGVj3ycrtyTUt4QnFWbFBTdqZnQC9WOy5UOhh6QPdjV6YUe9gFVvgTM5UES9siT8glWj3CW8cGdq94ds5GezJWQnJjYCVFVRN6KvxmVQJDT5NDZ5V5jmu0',
  10.     SHEETS_DESIGNER_LICENSE_KEY: 'guanyuanshuju,666326449326546#B1k4y9QkbV9UQ7d4dCd6bwMXMyokNBJDT7JUTwxUOyMHRVdWTnRHdItGZ8YlW6ZmY7A5QRJXNuZzMYN4RIpmdXFGVQZWNVdzTwEEey4UT5FFZ4pnVnJUTR5mQqZ4TqpmbodGCKBFW034bJdTSWhkZihnbPhnRxdDbzgEayAVdKxGaLZlbntyYqhlMJJjaStCZod5UvYUVWpnM92mc0dmaXlzVEtWYjpFaKZmUMpmViVGUDR5Q8FmSuVndWhjQn3EOup7Vs5kRrNzKGhzZoFEcxF6L6hTV8YmRS3EcvVDdVZVSuNTSxQmQatmUiojITJCLiEjMwU4NzYkI0ICSiwCM6kzNxcDM7MTM0IicfJye&Qf35Vfi4EU9cjI0IyQiwiI6EjL6BibvRGZB5icl96ZpNXZE5yUKRWYlJHcTJiOi8kI1tlOiQmcQJCLiUDNwEDMxASOwYDMzIDMyIiOiQncDJCLiYDMyEzMyAjMiojIwhXRiwiIu6o9wWp9c+L0c+L0CeK0eeb9t6p9iojIh94QiwiI6QTN6IzM9QDN6IzM6YjNiojIklkI1pjIEJCLi4TPRF4Nlx4YI3SY4dXSj3GWwkXYR34Y8VUOtd6ciZVMvEzb9ljerJ5VqlTMsFzTXlWejpWeDd7S8UnRNJkYO3iRmhzMNVGZydmR8Bldw3SR7pWUWdDW4YDS6IUZRdDV5hEN78mZycVaEV6Q0EFP5',
  11.   }
  12. }

  13. function registerLicenseKey() {
  14.   if (!GC) return
  15.   const license = getDefaultLicense()
  16.   if (!GC.Spread.Sheets.LicenseKey) {
  17.     GC.Spread.Sheets.LicenseKey = license.SHEETS_LICENSE_KEY
  18.   }
  19.   if (!GC.Spread.Sheets.Designer.LicenseKey) {
  20.     GC.Spread.Sheets.Designer.LicenseKey = license.SHEETS_DESIGNER_LICENSE_KEY
  21.   }
  22. }

  23. registerLicenseKey();
  24. let invalidLicense = false;
  25. try {
  26.   debugger;
  27.   let dummyDom = document.createElement('div');
  28.   let designer = new GC.Spread.Sheets.Designer.Designer(dummyDom);
  29.   designer.setConfig({ ...GC.Spread.Sheets.Designer.DefaultConfig });

  30. } catch (e) {
  31.   invalidLicense = true;
  32.   document.body.innerHTML = `<h1>Invalid License</h1>`;
  33. }

  34. if (!invalidLicense) {
  35.   ReactDOM.createRoot(document.getElementById('root')!).render(
  36.     <React.StrictMode>
  37.       <App />
  38.     </React.StrictMode>
  39.   )
  40. }
复制代码
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-7-15 09:07:40
8#
Joestar.Xu 发表于 2024-7-12 12:13
您好,SpreadJS原生上没有提供相关的接口可以检查license的注册情况,不过您可以在系统运行前执行一个检查 ...

所以意思是,只要设置配置出错,就一定是 license 过期吗?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-15 17:26:11
9#
您好,这里仅是一个思路供您参考,并不代表着出错了以后license为过期,正如我楼上所述,原生上没有接口可以判断license的注册情况。
回复 使用道具 举报
innerwang
中级会员   /  发表于:2024-7-16 14:00:36
10#
Joestar.Xu 发表于 2024-7-15 17:26
您好,这里仅是一个思路供您参考,并不代表着出错了以后license为过期,正如我楼上所述,原生上没有接口可 ...

好的,了解了,谢谢。

那么,是否可以考虑提供一个这样的接口呢?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部