如何在 NativeScript 中访问 android 的 R 对象?

How to access android's R object in NativeScript?

我正在尝试使用 Angular 在 NativeScript 中访问 android 的 R 对象,但没有成功。说明 here 说要这样做:

android.R.color.holo_purple

但是当我尝试从 application 模块或 tns-core-modules/platform 模块导入 android 变量时,我得到一个错误,即 R 属性 android 对象未定义。如何访问 R

您不需要从 application 模块导入 android 变量。默认情况下,它在运行时自动可用。要删除编译时错误 property doesn't exists 只需将名为 android 的变量声明为 any.

例如。

declare var android:any;
export class AppComponent{
  let holoPurple=android.R.color.holo_purple;
}

此处的 android 是 Android SDK 的主命名空间,而不是 application 模块中的 android 属性。

for instruction on how to access the native SDK via TypeScript or use the instruction from the related documentation article

无法获得适用于最新 nativescript 的现有答案/angular。我用以下方法解决了它:

创建了文件 App_Resources/Android/values/keys.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="key_name">xxxxxx</string>
</resources>

导入这些

import * as app from 'tns-core-modules/application';
import * as utils from 'tns-core-modules/utils/utils';

然后抓取字符串

const context = app.android.context;
const res = context.getResources().getString(utils.ad.resources.getStringId('key_name'));