Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 19.02.2012(UTC) Сообщений: 121   Сказал «Спасибо»: 2 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                После импорта библиотеки `cadesplugin-api.js` появились сложности совместимости стандартных вызовов в angular 9. Пробую реализовать вывод списка сертификатов в компоненте, но никак не получается. Поделитесь пожалуйста опытом, у кого получилось связать `cadesplugin-api.js` с angular (v. > 7), как вы это сделали? 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 08.04.2021(UTC) Сообщений: 11  Откуда: Москва Сказал(а) «Спасибо»: 3 раз
  
	 
	
     | 
    
        
            
		      
                Добрый день. Инициализируем плагин Цитата: initCadesPlugin(): Observable<string> {     this.cadesplugin = this.windowRef.nativeWindow.cadesplugin     return from(this.cadesplugin).pipe(       mergeMap(() => {         if (environment.cadesPluginLog) {           this.cadesplugin.set_log_level(this.cadesplugin.LOG_LEVEL_DEBUG)         }         this.log('Плагин инициализирован')         return of(this.cadesplugin.JSModuleVersion)       }),       catchError((err: any) => {         this.log(err, 'error')         return throwError(null)       }),     )   }
 
  Получаем сертификаты Цитата: /**    * Метод получения всех сертификатов из хранилища    * @returns Promise<ICadesCert[]>    */   getCertificates(): Promise<ICadesCert[]> {     if (this.cadesplugin) {       this.log('получение списка сертификатов')
        const ctx = this       const certificates: ICadesCert[] = []
        return new Promise((resolve, reject) => {         this.cadesplugin.async_spawn(           function* init(args: any[]): any {             try {               const oStore = yield ctx.cadesplugin.CreateObjectAsync('CAdESCOM.Store')               ctx.log('Открытие хранилища сертификатов')               oStore.Open(                 CAPICOM_CURRENT_USER_STORE,                 CAPICOM_MY_STORE,                 CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,               )               const CertificatesObj = yield oStore.Certificates               const oCertificates = yield CertificatesObj.Find(                 CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,                 CAPICOM_PROPID_KEY_PROV_INFO,               )               const Count = yield oCertificates.Count               if (Count === 0) {                 ctx.log('сертификаты не найдены', 'error')                 throw new Error(`Сертификаты не найдены`)               }               ctx.log(`Сертификаты: ${Count}`)               for (let i = 1; i <= Count; i += 1) {                 const Item = yield CertificatesObj.Item(i)                 ctx.log(`Обработка сертификата ${JSON.stringify(Item)}`)
                  const certData: ICadesCert = {                   Item,                   ValidToDate: moment(yield Item.ValidToDate).format('DD-MMMM-YYYY HH:mm:ss'),                   ValidFromDate: moment(yield Item.ValidFromDate).format('DD-MMMM-YYYY HH:mm:ss'),                   HasPrivateKey: yield Item.HasPrivateKey(),                   IssuerName: ctx.extract(yield Item.IssuerName, 'CN='),                   SubjectName: ctx.extract(yield Item.SubjectName, 'CN='),                   Thumbprint: yield Item.Thumbprint,                   Version: yield Item.Version,                 }
                  certificates.push(certData)               }               oStore.Close()               args[0](certificates)             } catch (err) {               ctx.log(err, 'error')               args[1](null)             }           },           resolve,           reject,         )       })     }     this.log('ошибка получения сертификатов, плагин не инициализирован или не запущен', 'error')     return Promise.reject()   }
 
   
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 13.05.2022(UTC) Сообщений: 26  Откуда: Moscow  
	 
	
     | 
    
        
            
		      
                Делаете "задержку" при вызове в Клиентском WEB-интерфейсе, например я сделал красивый AJAX-PHP запрос вместе со статус баром.  в то время как за 1,2сек всё инициализируется... 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close