我正在尝试R
使用 Angular 在 NativeScript 中访问 android 的对象,但我没有取得任何成功。这里的说明说这样做:
android.R.color.holo_purple
但是当我尝试从模块或模块导入android
变量时,我收到一个错误,即对象上的属性未定义。我如何访问?application
tns-core-modules/platform
R
android
R
我正在尝试R
使用 Angular 在 NativeScript 中访问 android 的对象,但我没有取得任何成功。这里的说明说这样做:
android.R.color.holo_purple
但是当我尝试从模块或模块导入android
变量时,我收到一个错误,即对象上的属性未定义。我如何访问?application
tns-core-modules/platform
R
android
R
您不需要从模块导入android
变量。application
它在运行时默认自动可用。要删除编译时错误property doesn't exists
,只需将名为的变量声明android
为any
.
例如。
declare var android:any;
export class AppComponent{
let holoPurple=android.R.color.holo_purple;
}
无法获得在最新的 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'));
这里android
是 Android SDK 的主命名空间,而不是模块中的android
属性application
。
有关如何通过 TypeScript 访问本机 SDK 的说明或使用相关文档文章中的说明,请参阅此 StackOverflow 答案