public static async Task Initialize(ChakraJavaScriptExecutor executor, IMessageQueueThread jsQueueThread) { var scriptUris = new[] { @"ms-appx:///Resources/test.js", }; var scripts = new KeyValuePair <string, string> [scriptUris.Length]; for (var i = 0; i < scriptUris.Length; ++i) { var uri = scriptUris[i]; var storageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(uri)); scripts[i] = new KeyValuePair <string, string>(uri, storageFile.Path); } await jsQueueThread.CallOnQueue(() => { foreach (var script in scripts) { executor.RunScript(script.Value, script.Key); } return(true); }); }
public static async Task Initialize(ChakraJavaScriptExecutor executor, IMessageQueueThread jsQueueThread) { var scriptUris = new[] { new Uri(@"ms-appx:///Resources/test.js"), }; var scripts = new string[scriptUris.Length]; for (var i = 0; i < scriptUris.Length; ++i) { var uri = scriptUris[i]; var storageFile = await StorageFile.GetFileFromApplicationUriAsync(uri); using (var stream = await storageFile.OpenStreamForReadAsync()) using (var reader = new StreamReader(stream)) { scripts[i] = reader.ReadToEnd(); } } await jsQueueThread.CallOnQueue(() => { foreach (var script in scripts) { executor.RunScript(script); } return(true); }); }
public static async Task Initialize(ChakraJavaScriptExecutor executor, IActionQueue jsQueueThread) { var scriptUris = new[] { @"Resources/test.js", }; var scripts = new KeyValuePair <string, string> [scriptUris.Length]; for (var i = 0; i < scriptUris.Length; ++i) { var uri = scriptUris[i]; #if WINDOWS_UWP var storageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx://" + "/" + uri)); var filePath = storageFile.Path; #else var assembly = Assembly.GetAssembly(typeof(JavaScriptHelpers)); var assemblyName = assembly.GetName(); var pathToAssembly = Path.GetDirectoryName(assemblyName.CodeBase); if (pathToAssembly == null) { throw new FileNotFoundException($"Could not get directory name for code base of '{assemblyName}'."); } var pathToAssemblyResource = Path.Combine(pathToAssembly, uri); var u = new Uri(pathToAssemblyResource); var filePath = u.LocalPath; #endif scripts[i] = new KeyValuePair <string, string>(uri, filePath); } await jsQueueThread.RunAsync(() => { foreach (var script in scripts) { executor.RunScript(script.Value, script.Key); } return(true); }); }