2017-07-12 9 views
0

NativeScriptを初めて使用しています。 私はBluetooth Native API(クラシックではないLE)の使い方を理解しようとしています。 私はブルートゥースのAPIとどのように対話できるかを知るのに苦労しています。アンドロイドを使用したNativescript

私がヒットした最初の壁は、自分のタイプコードでアンドロイドを使用しています。コンポーネントでexempleについては

私がしなければ:

ngOnInit(): void { 
    console.info(android.os.Build.VERSION.SDK_INT) 
} 

私はエラーを取得する:

JS:ERRORエラー:キャッチされない(約束で):TypeError例外:プロパティを読み取ることができません未定義の 'OS' を

提案がありますか?

+0

これは愚かに聞こえるかもしれませんが、あなたはAndroidデバイスでサンプルを実行しましたか? – pkanev

+1

typescriptを使用していて、プラットフォーム宣言を追加していないと思うので、 'decl android:any;'をファイルの先頭に追加するか、tsconfigに '' noEmitOnError ":false'を設定する必要があります.json –

+0

これらのソリューションはどれも動作しません。 @OseiFortuneあなたと命題私はエラー:未定義のos – gpasse

答えて

3

TypeScriptを介してネイティブAPIにアクセス(さらにはintelliSenseの方が優れています)するには、生成された宣言ファイルが必要です。幸いなことに、あなたはあなたの角度のプロジェクト

npm i tns-platform-declarations --save-dev 

そして中fiollwingが持つreferences.d.tsファイルを作成しない、彼らは宣言をインストールするにはtns-platform-declarations plugin

を経由して、すでに盛あるとして、これらのファイルを提供する必要はありません。以下の内容:

/// <reference path="./node_modules/tns-platform-declarations/ios.d.ts" /> 
/// <reference path="./node_modules/tns-platform-declarations/android.d.ts" /> 

最後に、以下が含まれるようにtsconfig.jsonファイルの内容を変更します。

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es5", 
     "experimentalDecorators": true, 
     "lib": [ 
      "es6", 
      "dom" 
     ] 
    } 
} 

何らかの理由でのIntelliSenseを必要としない場合は、このすべてをスキップし、単にあなた* .TSの先頭にアンドロイドに種類を与えることができますしかし、私は強く希望

declare var android: any; 

を提出本当に素敵なネイティブAPIのための素晴らしいIntelliSenseを提供するための最初のアプローチをお勧めします

関連する問題