3

私は単純な NativeScript アプリを構築しており、TypeScript ベース コードを使用してそれを実行しようとしています。

OSXでSublime Text 3を使用しています。

デモ アプリを見て、 NativeScripttns_modulesリポジトリと一致することがわかったので、Git サブモジュールとしてフォルダーに追加し、コンパイルしました ( )。これらのモジュールを統合するのは間違った方法ですか?app/npm i && grunt

その後、ファイルtns emulate androidで構成されたアプリを実行するだけでは不十分であることに気付きました。それらもコンパイルする必要がありました。.tsそのため、Grunt タスクをセットアップしましたが、依存関係を処理するのは簡単ではありませんでした。Gruntfile.coffee私はこれで終わったapp/

module.exports = (grunt) ->
    grunt.loadNpmTasks 'grunt-typescript'

    grunt.config 'typescript',
        build:
            src: [
                '**/*.ts'
                '!*_modules/**'
            ]
            options:
                references: [
                    'tns_modules/bin/dist/definitions/**/*.d.ts'
                ]
                target: 'es5'
                sourceMap: false
                declaration: false
                module: 'commonjs'
                noResolve: true

そして、それは単純なコードで動作します。たとえば、次のようObservableに記述してモジュールを拡張できます。

import observable = require("data/observable");
class Activities extends observable.Observable {
    //...
}

次に、grunt(.jsファイルはファイルと共に作成されます) でコンパイルし、( Genymotion エミュレーターで).ts実行します。tns emulate android

それは私の開発に適したアーキテクチャですか? Telerik Platform を使用すると、コンパイル プロセスが非表示になるため、正しく行っているかどうかわかりません。

そして今、Telerik のサイドバーモジュールをページの XML ファイルで直接使用しようとしています

<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded" xmlns:tsb="./tns_modules/bin/dist/apps/TelerikNEXT/TelerikUI/side-bar">
    <tsb:SideBar title="MyApp">
        ...

しかし、私はこのエラーが発生します:

E/TNS.Native( 2456): TypeError: 未定義のプロパティ 'android' を読み取れません E/TNS.Native( 2456): ファイル: "/data/data/org.nativescript.scmobile/files/app/./tns_modules/ bin/dist/apps/TelerikNEXT/TelerikUI/サイドバー、行: 39、列: 39

以下に対応します。

this._android = new com.telerik.android.primitives.widget.sidedrawer.RadSideDrawer(this._context);

これらのモジュールをどのように含める必要があるか考えていますか? 私はモバイル開発が初めてであることに注意してください。

4

1 に答える 1

1

この例で使用しているサイドバーは、 Telerikの (有料)コントローラーです。

そのため、ダウンロードして で追加する必要がありますtns library add {ios|android} /path/to/the/sidebar

このコマンドは、指定された共有ライブラリ フォルダーから project.properties ファイルを読み取り、そのファイルへの参照をプロジェクトに追加します。共有ライブラリに他のプロジェクトへの参照がある場合、これらのプロジェクトは再帰的に含まれます。その結果、既存のアプリとプラットフォームに兄弟である新しいフォルダー lib が作成されます。

于 2015-05-22T13:19:17.183 に答える