Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
        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);
            });
        }