--> -->
NativeScript+JavaScriptからnativescript-stripeを使うときにはまったのでメモです。
私はNativeScript+JavaScriptでアプリを書いています。(まずこれはお勧めしません。世の中的にはTypeScriptがメジャーなようです)
nativescript-stripeのマニュアルには、以下のように呼び出せとあります。
ところが、これをやるとnewのところで以下のエラーが出て落ちます。
JS: ERROR Error: Uncaught (in promise): TypeError: com.stripe.android.Stripe is not a constructor JS: TypeError: com.stripe.android.Stripe is not a constructor
どうやらプラグインの定義がJavaScriptからはうまく呼べる形になっていないようです。(何かのバージョンの問題?)
そこで、他のプラグインを参考に以下のようなファイルを1つ作ってみました。
common/stripe-index.js
1 2 3 4 5 |
|
そしてこれを使ってStripeを呼び出します。
1
2
3
4
5
6
7
8
9
10
11
| - - - ! - | ! ! |
|
これで無事tokenが返るようになりました。
stripe.createToken:success:tok_1EQ6leBstKlU6P**********
めでたしめでたし。
上記の問題が発生する前には、以下のようなエラーも出ていました。
TypeError: Cannot read property 'CardInputWidget' of undefined File: "file:///data/data/org.nativescript.SCOP/files/app/tns_modules/nativescript-stripe/stripe.js, line: 226, column: 52
これは、nativescriptとandroid platformのバージョンを最新にすることで解消しました。(逆に言うと今後のupdateで再度エラーになる可能性も・・・)
tns infoで現在のバージョンを確認の上、
npm install -g nativescript
tns platform update
で最新に更新できます。
Tweet