如何在ReactNative Windows上加载"Windows"到Chakra命名空间?



我想访问Windows名称空间和" Windows.storage"的特定工具,例如我的Reactenative Windows Project中的JS。正如我所理解的那样

从理论上讲,我应该能够像从项目中的JsProjectWinRTNamespace(L"Windows.Storage");一样进行SMTH。如果发生反应,则可能是Native.JsProjectWinRTNamespace(L"Windows.Storage");。但是我不明白应该放在哪里。

任何帮助将不胜感激。谢谢。

好的,似乎我已经找到了这个。您应该能够通过向其添加Native.JsProjectWinRTNamespace(L"Windows.Storage");行中的InitializeChakra()编辑CC_3功能,因此看起来如下:

    private void InitializeChakra()
    {
        JavaScriptContext.Current = _runtime.CreateContext();
        var consolePropertyId = default(JavaScriptPropertyId);
        Native.ThrowIfError(
            Native.JsGetPropertyIdFromName("console", out consolePropertyId));
        Native.JsProjectWinRTNamespace(L"Windows.Storage");
        var consoleObject = JavaScriptValue.CreateObject();
        EnsureGlobalObject().SetProperty(consolePropertyId, consoleObject, true);
        _consoleInfo = ConsoleInfo;
        _consoleLog = ConsoleLog;
        _consoleWarn = ConsoleWarn;
        _consoleError = ConsoleError;
        DefineHostCallback(consoleObject, "info", _consoleInfo);
        DefineHostCallback(consoleObject, "log", _consoleLog);
        DefineHostCallback(consoleObject, "warn", _consoleWarn);
        DefineHostCallback(consoleObject, "error", _consoleError);
        Debug.WriteLine("Chakra initialization successful.");
    }

现在,您可以直接从反应式JS代码中使用Windows API,例如:

var path = Windows.Storage.ApplicationData.current.localFolder.path;

!!!但是要小心,因为此名称空间只能在脉轮运行时可用,因此,当使用Chrome调试应用程序时 - 会不断出现'Windows is undefined'错误。

最新更新