使用带有打字稿

时间:2017-02-07 16:50:42

标签: javascript android cordova reactjs typescript

我正在尝试使用typescript + react来构建cordova app。

所以我需要在外部应用程序(图库或PDF阅读器,用户可以手动选择选项)中打开base64图像或pdf,并且遇到了这个cordova插件“InAppBrowser”。

问题是,整个参考和文档都是针对JavaScript制作的,当我尝试在TS中使用它时会导致错误

var ref = cordova.InAppBrowser.open(base64path, '_blank', 'location=yes');

“Cordova”类型中不存在“InAppBrowser”属性。

我已经安装了“cordova”和“cordova-in-app-browser-plugin”(index.d.ts文件)的打字,但它并没有解决问题。 有人知道解决方案吗?感谢。

4 个答案:

答案 0 :(得分:3)

看起来由于某种原因,InAppBrowser打字文件在安装时没有“打开”。我能够通过一个新的cordova项目在本地重现这个问题 - >通过config.xml GUI“添加”安装InAppBrowser,通过NPM安装打字。

我不确定如果首先安装打字机,这是否会重现,然后添加或不添加cordova插件 - 我想它可能,但无论哪种方式,解决方案是InAppBrowser接口永远不会添加到cordova。这是一个简单的解决方案。

导航到typings文件夹InAppBrowser.d.ts,然后添加:

interface Cordova{
    InAppBrowser: InAppBrowser
}

然后,按照原始帖子(我使用google.com)进行通话:

var ref = cordova.InAppBrowser.open('http://www.google.com','_blank','location=yes')

答案 1 :(得分:0)

我已经为cordova-plugin-inappbrowser提交了一个更正的打字文件到DefinitelyTyped。从version 1.7.0开始,此错误已得到修复。

答案 2 :(得分:0)

作为上述回答的补充,我在编译到cordova项目的www文件夹的多平台angular 5应用程序中遇到了类似的问题。 Typescript无法解析window.cordova.InAppBrowser(即使在将cordova-plugin-inappbrowser添加为开发依赖项之后也是如此)。

对于我来说,我需要在主项目的根文件夹中的“ types.d.ts”文件中添加“接口Cordova {...”定义。

希望这对别人有帮助,就像上面的帖子对我有帮助:)

答案 3 :(得分:0)

对于我来说,我要做的就是将以下行添加到文件的开头:

declare var cordova: any;