2017-10-04 2 views
1

J'essaie d'ouvrir l'URL lorsque l'utilisateur clique sur un bouton dans la vue plugin. Mais web addin est erreur de lancement.Pop-up erreur bloquée lors de l'ouverture de l'URL de Outlook Webaddin

Mon code pour ouvrir url:

let a = document.createElement("a"); 
a.setAttribute('target', '_blank'); 
a.setAttribute("style", "display: none"); 
document.body.appendChild(a); 
a.href = finalUrl; 
a.click(); 
document.body.removeChild(a); 

Message d'erreur:

enter image description here

App est rejeté du magasin à cause de cette erreur. Comment puis-je surmonter cette erreur?

Je ne souhaite pas utiliser l'API Dialogue qui n'ouvre pas l'URL dans le navigateur.

Répondre

1

La règle générale est l'ouverture d'une fenêtre sera toujours bloquée lorsque ce n'est pas le résultat direct d'une action de l'utilisateur. Pour plus d'informations, voir cette question SO: Avoid browser popup blockers.

Vous déclenchez un popup parce que vous essayez d'émuler un click(). Comme il ne s'agit pas d'une action directe de l'utilisateur, cette action sera signalée par tous les navigateurs principaux.

Vous devrez présenter à l'utilisateur un élément cliquable (lien, bouton, etc.) qui ouvre une nouvelle fenêtre.

+0

Ici, je n'ai pas d'URL au moment du rendu. Lorsque l'utilisateur clique sur le bouton, je génère dynamiquement l'URL amazon s3 et l'ouvre. Quel est le travail autour de gérer ce genre de scénarios? – Rajeev

+0

Vous devez générer le 'URI' et appeler' window.open' dans le gestionnaire d'événements click de ce bouton. Lorsque vous êtes confronté au bloqueur, c'est lorsque vous placez cet appel plus profondément dans la pile d'appels. L'alternative serait que l'utilisateur clique sur le bouton et les présente ensuite avec un autre bouton quand l'URI est prêt. –