好吧,似乎我找到了這個。 你應該能夠通過添加Native.JsProjectWinRTNamespace(L"Windows.Storage");
線,它react-native-windows/ReactWindows/ReactNative/Chakra/Executor/ChakraJavaScriptExecutor.cs
編輯InitializeChakra()
功能,所以它會看起來如下:
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.");
}
現在,你就可以直接從ReactNative JS使用Windows API代碼例如:
var path = Windows.Storage.ApplicationData.current.localFolder.path;
。
!!!但要小心,因爲此名稱空間僅在Chakra運行時中可用,所以在使用Chrome調試應用程序時,會不斷出現'Windows is undefined'
錯誤。