0

我已经创建了 .a 静态库(在 Xcode 中针对本机 ios 项目进行了测试,并且工作正常)现在我正在关注这个https://github.com/NativeScript/nativescript-plugin-seed 以使用 .a 静态框架创建 nativescript 插件。

插件结构 在此处输入图像描述

module.modulemap文件是我创建的,它看起来像这样

module libstaticlibrary {
    umbrella header "staticlibrary.h"
    export *
}

静态库.h

#import <Foundation/Foundation.h>

@interface staticlibrary : NSObject
+ (NSString *)sayHello;
@end

libstaticlibrary.d.ts也是我创建的

declare class staticlibrary extends NSObject {

    static sayHello():string;

}

然后在helloplugin.common.ts我试图访问staticlibrary.sayHello()方法。

export class Utils {
  public static SUCCESS_MSG(): string {
    // let msg = `Your plugin is working on ${app.android ? 'Android' : 'iOS'}.`;
    let msg = staticlibrary.sayHello();

    setTimeout(() => {
      dialogs.alert(`${msg} For real. It's really working :)`).then(() => console.log(`Dialog closed.`));
    }, 2000);

    return msg;
  }

我收到以下错误。

node_modules/nativescript-helloplugin/helloplugin.common.ts(21,15): error TS2304: Cannot find name 'staticlibrary'.

我在这里做错了什么?

4

1 回答 1

2

这只是 TypeScript 编译器错误,您必须为静态库生成类型(请参阅文档以了解如何),或者只需在文件顶部添加这一行。

declare var staticlibrary: any

我看到你的代码片段中有一个声明文件,如果你想使用它,你必须将它包含到你的references.d.ts文件中。

于 2018-03-05T15:55:18.947 回答