nativecript-平台特定代码



我有一个iOS特定代码(类定义),并且想在单独的iOS特定文件中包含。

所以我创建了两个文件

utils2.ios.ts< - 在此处添加我的代码

utils2.android.ts

然后从另一个文件中,我做到了:

导入utils2 = require(" ./utils2");

,但是我收到的错误消息未找到模块。

我必须走这条路线,因为我在代码,如果我只有一个文件,我会在Android上获得运行时错误。

打字稿支持平台特定文件?

或其他选项 - 在TS File

中可以使用这种选择

如果ios

做这个

结束

类似于C预处理器

您只需使用一个utils.ts文件就可以通过,在其中您可以执行提到的平台特定逻辑。您关于module not found的问题可能只是该模块的一个路径问题,而不是该模块实际上不存在。另请注意,Typescript并不真正"支持"平台特定文件。NativeScript获取这些.android.ts.ios.ts文件,并在运行时加载您在运行的平台上所需的文件。因此,只有真正与TS相关的fyi:)

NativeScript在tns-core-modules中提供了platform模块。从代码中的平台模块导入{ isAndroid }{ isIOS },并将其用作

if (isAndroid) { 
  // do android only here 
} else { 
  // ios 
}

最新更新