2016-12-08 1 views
0

Ich muss sicher sein, dass meine Play() -Funktion aufgerufen wird, nachdem der Text mit einer Javascript-Funktion (AddToPage) in das Webview hinzugefügt wurde. Stellt das await-Schlüsselwort sicher, dass die JavaScript-Funktion vollständig ausgeführt wird, oder wartet es nur, bis der Aufruf erfolgt ist?UWP: Warten auf invokeScriptAsync durchgeführt werden

private async void AddChunk(ChunkEventArgs chunkargs) 
    { 
     Debug.WriteLine("AddChunk called: " + chunkargs.Text); 

     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,async() => 
     { 
      if (!string.IsNullOrEmpty(chunkargs.Text)) 
      { 
       string text = App.chunkparser.ParseChunk(chunkargs.Text); 

       Debug.WriteLine("calling addparsedchunk"); 
       CurrentDocument.AddParsedChunk(App.chunkparser.ElementFromChunk); 

       await _webView.InvokeScriptAsync("AddToPage", new string[] { text }); 

       if (App.settings.AutoPlay && !SpeechControl.IsSpeaking) 
        Play(); 
      } 
     }); 
    } 

Antwort

0

InvokeScriptAsync wartet bis das Skript endet.

  • Es gibt das Ergebnis des Skripts, das, wenn das Skript
  • Die documentation sagt Your app might appear unresponsive while scripts are running. Handle the LongRunningScriptDetected event to interrupt a long-running script., beendet ist nur dann möglich ist, das zeigt deutlich, dass das Verfahren für den
Skript Abschluss wartet
Verwandte Themen