2

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

android.R.color.holo_purple

但是当我尝试从模块或模块导入android变量时,我收到一个错误,即对象上的属性未定义。我如何访问?applicationtns-core-modules/platformRandroidR

4

3 回答 3

4

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

例如。

declare var android:any;
export class AppComponent{
  let holoPurple=android.R.color.holo_purple;
}
于 2018-07-08T05:12:09.143 回答
3

无法获得在最新的 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'));
于 2018-11-06T11:35:17.003 回答
0

这里android是 Android SDK 的主命名空间,而不是模块中的android属性application

有关如何通过 TypeScript 访问本机 SDK 的说明或使用相关文档文章中的说明,请参阅此 StackOverflow 答案

于 2018-07-09T11:01:37.647 回答