0

J'ai un webview et je voudrais injecter quelques JS après le chargement de la page.Comment injecter JS sur un webview UWP?

Je sais que sur Android que je peux utiliser

webView.loadUrl("javascript:function foo(str) { } foo('x');"); 

mais UWP

WebView.Navigate("javascript:function foo(str) { } foo('x');"); 

ne fonctionne pas parce que Naviguer veut un objet URI et non une chaîne.

Comment puis-je faire?

+0

Rechercher 'WebView.InvokeScriptAsync' :) –

+0

@Neil Turner ça marche. Merci! –

Répondre

1

Une solution:

  1. Téléchargez votre page Web comme une chaîne (par exemple en utilisant HTTPClient).
  2. Combinez la chaîne avec votre JS personnalisé.
  3. Appelez NavigateToString (pas naviguer) et passez votre page combinée.

Nous avons utilisé cette solution une fois lorsque WP8.1 avait des problèmes avec les événements tactiles. Nous avons injecté hammer.js sur toutes les pages web en utilisant la méthode ci-dessus et cela a bien fonctionné.

Une autre solution:

Utilisez InvokeScriptAsync comme Neil a mentionné dans son commentaire. Il ya un bon aperçu de cette solution sur MSDN Forums.

+0

télécharger chaque page n'est pas lente? –

+0

Le navigateur télécharge la page de toute façon, donc dans notre cas au moins, nous n'avons pas vu de problèmes de performance. –