Prezados,
Minha aplicação faz acesso a um WS SOAP, no qual obtenho algumas informações de uma app de terceiros, uma dessas informações é uma URL pública (externa à minha app).
Consigo ler as informações obtidas e apresentá-las em uma table, porém, não consigo utilizar a URL redirecionando para um “site externo”, então gostaria de saber como posso fazer isso? Os códigos funcionam, porém, não consigo sair do domínio da minha aplicação, ele não redireciona (se mantém no localhost:4200).
Segue códigos:
Trecho da página:
<ng-container matColumnDef="unbDoc">
<th th *matHeaderCellDef mat-sort-header>SEI / UnBDoc</th>
<td *matCellDef="let row">
<a *ngIf="row.linkAcesso" href="acessarProcesso(row.linkAcesso)">{{ row.unbDoc }}</a>
<span *ngIf="!row.linkAcesso">{{ row.unbDoc }}</span>
</td>
</ng-container>
Classe TS (função):
public acessarProcesso(linkAcesso: URL) {
window.open(linkAcesso.toString(), '_blank');
}
Desde já agradeço a todos.
Descobri o erro, o meu código não estava tratando um erro vindo do back-end, e não preenchia o link de acesso.
Meu código final ficou assim:
Preenchimento da lista de objetos (trecho):
this._correspondenciaService.pesquisaEvent.subscribe(event => {
event.forEach(async (element: Correspondencia) => {
if (element.unbDoc.length > 0) {
try {
await this._seiService.consultarProcesso(element.unbDoc).then((result: ConsultarProcedimentoResponse) => {
if (result.LinkAcesso.length > 0) {
element.linkAcesso = result.LinkAcesso.replace('&', '&');
} else {
element.linkAcesso = '';
}
});
} catch (error) {
this._correspondenciaService.handleError(error);
element.linkAcesso = '';
}
}
});
Trecho da página:
<ng-container matColumnDef="unbDoc">
<th th *matHeaderCellDef mat-sort-header>SEI / UnBDoc</th>
<td *matCellDef="let row">
<div style="width: 200px;">
{{ row.unbDoc }}
<button *ngIf="(row.linkAcesso)" id="btnVisualizar" matSuffix mat-icon-button color="primary" title="Visualizar Processo" aria-label="Visualizar Processo" (click)="visualizarProcesso(row.linkAcesso)" type="button">
<mat-icon>launch</mat-icon>
</button>
</div>
</td>
</ng-container>
Classe TS (função):
public visualizarProcesso(linkAcesso: string) {
if (linkAcesso.length > 0) {
window.open(linkAcesso.toString(), '_blank');
} else {
this._correspondenciaService.showMessage('Este processo não foi encontrado ou não está visivel publicamente!');
}
}
Obrigado a todos!