【问题标题】:Unable to find android.view in NativeScript在 NativeScript 中找不到 android.view
【发布时间】:2022-04-06 14:30:11
【问题描述】:

我正在使用 Angular 开发本机脚本应用程序,我需要访问本机 Android API。我尝试使用本机脚本文档中提到的android.view,但我收到一条错误消息,提示未定义视图:Native Script documentation

下面是用于访问 android 对象的声明。

import { android } from "application";

您能帮我找出为什么会出现此错误吗?

【问题讨论】:

    标签: angular nativescript


    【解决方案1】:

    您无需导入任何内容即可访问本机 API。所以要使用android.view,你只需在你的应用程序中这样调用它:

    const x = new android.view.ViewGroup.... // or whatever you're accessing

    【讨论】:

    • 这行得通,但在我使用 Angular 时需要做一些小技巧。我必须在组件之前将 android 声明为任何变量,然后在不进行任何引用的情况下使用它。感谢您的帮助
    • 你只是绕过 ts 不知道 android 是什么。如果您将 dev 依赖项添加到项目中,Nativescript 会为原生 API 提供类型:tns-platform-declarations,然后您将在 TS 中获得对原生 API 的工具支持。希望对您的体验有所帮助:)
    【解决方案2】:

    根据 Brad Martin 的回应,没有必要进行任何导入。要在 Angular 环境中使用它,请在组件声明之前添加此行。

    declare var android :any;
    

    【讨论】:

      【解决方案3】:

      在答案中(也回答了我的问题)有两点需要注意:

      • 可以使用的本机变量android
      • import { android } from "@nativescript/core/application"; 导入的那个

      当我用作建议的答案时,我遇到了一个问题,它现在无法在代码中找到 addEventListener android.addEventListener

      所以最终我写了这样的东西来区分这两个变量

      import {
        android as Android,         <= aliased android => Android
        AndroidActivityEventData,
        AndroidApplication } from '@nativescript/core/application';
      
      Android.addEventListener(AndroidApplication.activityCreatedEvent, (event: AndroidActivityEventData) => {
        event.activity.getWindow().getDecorView().setLayoutDirection(android.view .View.LAYOUT_DIRECTION_RTL);
      });
      

      【讨论】:

        猜你喜欢
        • 2023-03-03
        • 1970-01-01
        • 2020-11-20
        • 1970-01-01
        • 2017-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        • 1970-01-01
        相关资源
        最近更新 更多