找回密码
 立即注册

QQ登录

只需一步,快速开始

front-sl
注册会员   /  发表于:2024-8-1 21:20  /   查看:535  /  回复:8
30金币
本帖最后由 front-sl 于 2024-8-1 21:22 编辑

图片.png768391723.png
我们这边需要提前判定授权码是否过期,参考了https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=82067上的方式,但是在加载完成spreadJS资源后,使用我们这边一个过期的授权码验证,通过new window.GC.Spread.Sheets.Workbook().getActiveSheet()获取到的并不是一个null,后续页面渲染了SpreadJS内置的提示授权码过期的页面,使用'test'确实能获取到null。这样就没法提前判定授权码是否过期了,麻烦帮忙解答一下。



最佳答案

查看完整内容

您好!SpreadJS暂时没有API能直接检查授权码是否过期,您可以尝试在系统运行前执行以下代码判断授权码是否有效:

8 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-8-1 21:20:26
来自 4#
front-sl 发表于 2024-8-2 10:03
感谢您的解答。
我们这边是出现了这个页面,

您好!SpreadJS暂时没有API能直接检查授权码是否过期,您可以尝试在系统运行前执行以下代码判断授权码是否有效:
  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. }
复制代码


回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-2 09:25:00
2#
您好!您参考的帖子中使用的“test”不是正常格式的授权码,因此通过它无法正常加载Worksheet。而您的过期授权码虽然使用时效超期,但还是正常格式的授权码,只是在Worksheet页右下角出现了水印。在您收到的授权邮件中,关于您购买的每一项授权产品,除了授权码之外,还有过期时间,您可以在代码中将此信息保存为常量使用验证。
请您参考该帖了解:https://gcdn.grapecity.com.cn/showtopic-215993-1-1.html
回复 使用道具 举报
front-sl
注册会员   /  发表于:2024-8-2 10:03:55
3#
Wilson.Zhang 发表于 2024-8-2 09:25
您好!您参考的帖子中使用的“test”不是正常格式的授权码,因此通过它无法正常加载Worksheet。而您的过期 ...

感谢您的解答。
我们这边是出现了这个页面,
图片.png49094847.png
这个时候在浏览器控制台窗口调用new window.GC.Spread.Sheets.Workbook().getActiveSheet()获取到的是null。
在一加载完成SpreadJS资源并添加授权码后调用new window.GC.Spread.Sheets.Workbook().getActiveSheet()和出现授权码过期页面之后调用new window.GC.Spread.Sheets.Workbook().getActiveSheet()获取到的结果并不一致,目前没有方式提前到一加载完成SpreadJS资源并添加授权码后就能知道授权码无效或过期吗?

回复 使用道具 举报
front-sl
注册会员   /  发表于:2024-8-2 14:37:58
5#
Wilson.Zhang 发表于 2024-8-2 11:57
您好!SpreadJS暂时没有API能直接检查授权码是否过期,您可以尝试在系统运行前执行以下代码判断授权码是 ...

感谢~就是我们这边的场景一般不使用designer,不会配置designer的码,那么这一步有什么方法通过非disigner的方法catch出授权码是有问题的呢?
图片.png286171569.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-2 15:32:55
6#
front-sl 发表于 2024-8-2 14:37
感谢~就是我们这边的场景一般不使用designer,不会配置designer的码,那么这一步有什么方法通过非disign ...

您框中的代码用以根据<div>容器创建在线表格设计器,将这里的代码更换为创建表格组件的代码即可,可参考如下代码:
  1. var spread = new GC.Spread.Sheets.Workbook(dummyDom);
复制代码
回复 使用道具 举报
front-sl
注册会员   /  发表于:2024-8-2 16:14:35
7#
Wilson.Zhang 发表于 2024-8-2 15:32
您框中的代码用以根据容器创建在线表格设计器,将这里的代码更换为创建表格组件的代码即可,可参考如下代 ...

我们不使用SpreadJS设计器,所以不引用设计器的js,不会有这个GC.Spread.Sheets.Designer对象。
如下处理catch不到,应该是依赖这一步【designer.setConfig({ ...GC.Spread.Sheets.Designer.DefaultConfig })】
  1. try {
  2.   let dummyDom = document.createElement('div');
  3.   let designer = new GC.Spread.Sheets.Workbook(dummyDom);
  4.     } catch (e) {
  5.    invalidLicense = true;
  6.    document.body.innerHTML = `<h1>Invalid License</h1>`;
  7. }
复制代码


我这边尝试了其他方式目前看是可以检测到授权码无效。如下

  1. let wb = new window.GC.Spread.Sheets.Workbook();
  2. setTimeout(() => {
  3.   wb = new window.GC.Spread.Sheets.Workbook();
  4.   if (!wb.getActiveSheet()) {
  5.     // 授权码无效
  6.   } else {
  7.     // 授权码有效
  8.   }
  9. }, 10);
复制代码


回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-2 17:03:29
8#
front-sl 发表于 2024-8-2 16:14
我们不使用SpreadJS设计器,所以不引用设计器的js,不会有这个GC.Spread.Sheets.Designer对象。
如下处 ...

是的,您的代码修正是正确的,创建SpreadJS组件的Workbook,而不是创建在线表格编辑器。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-8-29 18:38:29
9#
您好!从跟帖信息了解到您的问题已得到了有效的解决方案,那就结贴了。如有问题,欢迎继续发帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部