2017-04-23 7 views
0

http native pluginを使用してionic 2アプリからHTTP putリクエストを送信しようとしていますが、ドキュメントからはpostgetのリクエスト方法しか実装されていません。まずionic2ネイティブhttpプラグインを使用してHTTP PUTリクエストを送信するにはどうすればよいですか?

私はHTTPメソッドdeleteputが実際に実装されていない場合は(私はドキュメントで適切な場所を見ていない可能性がありますように)知っていただきたいと思います。

2番目:これらが実装されていない場合、私たちはイオン2アプリからputdeleteをどのように生成できますか?プラグインネイティブ/ライブラリコードを変更する必要はありませんが、低レベルで行うことは可能ですか?

ありがとうございます。

アップデート1:putdeletepostJSON実装(https://github.com/wymsee/cordova-HTTP/pull/105)のためのプル要求は、それがマスターにマージされていませんが2016年9月から今まで2017年4月、があります。

更新2:まず、@ジャミール・ヒジャヤイに答えていただきたいと思います。それが問題を解決しました。しかし、CORSを回避するには解決策2にはサーバー構成が必要なので、最初に選択しました。また、 "イオンネイティブ"ではないコードバプラグインを使用する方法について説明している素敵な記事https://www.joshmorony.com/using-cordova-plugins-in-ionic-2-with-ionic-native/があります。私はそれを通過することをお勧めします。

Ionic 2で非イオンネイティブプラグインを使用する方法は、どのCordovaプロジェクトでも使用する方法と同じですが、次のようなセクションを指摘したいと思います。プラグインのドキュメントには、あなたがそれを使うべきだと言われています。しかし、TypeScriptはいくつかの問題を引き起こすので、いくつかの追加ステップが必要です。さらに行く

それは我々がそうtypescriptですが、そのことについて知っているdeclarations.d.tsのようなどこかでプラグインによってcordovaHTTPグローバルエクスポートされた変数を宣言する必要があることを説明しています。一度宣言すれば、依存性注入は必要ありません。以下は、ランダムなComponent関数で使用したコードスニペットです。

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    constructor(
    public navCtrl: NavController, 
    private _platform: Platform 
) { 
    this._platform.ready().then(() => { 

     // ========== We need this part 
     cordovaHTTP.put('http://192.168.0.5:8081/test-route', { 
     really: "Yea!" 
     }, {}, (res: any) => { 
     console.log(res); 
     }, (err: any) => { 
     console.log(err); 
     }); 
     // ========== till here, as for the example of usage 
    }); 
    } 

} 

答えて

1

オプション1:このコマンドionic plugin add https://github.com/spuentesp/cordova-HTTPを使用して、プルリクエストレポhttps://github.com/spuentesp/cordova-HTTPを作った作者から直接プラグインをインストールPUTを使用したいので、もしcordova-httpプラグインは唯一、GETPOSTサポート

しかし、ionic-nativeからこれらのAPIの実装された宣言がないので、012にcordovaHTTP名前空間を宣言できますし、必要なAPIを使用し

オプション2:

使用中のHttpサービス角度

this.http.put(url, JSON.stringify(hero), {headers: headers}).map(res => res.json()); 

のHttpクラスドキュメントhttps://angular.io/docs/ts/latest/api/http/index/Http-class.html

+0

が返信いただきありがとうございますが、私は持っています宣言部の問題declarations.d.tsにcordovaHTTP名前空間を宣言する方法は?いくつかのコードスニペットを追加できますか? – Musa

+1

あなたは歓迎です。 'declare var cordovaHTTP:any;' declarations.d.ts'に追加してください。 –

+0

私は同じことをやっていますが、HTTPが定義されていません。私は定義ファイルにいくつかのJSファイルをリンクする必要があると思いますが、私は – Musa

関連する問題