如何在 JSNI 代码中使用 Javascript 库(从 CDN 下载)?
例如,我想在这个 JSNI 方法中调用 javascript Stripe 方法:
private native void contactStripe(String creditCard, String cvc, String expiryMonth, String expiryYear) /*-{
$wnd.Stripe.setPublishableKey('my_stripe_publishable_key');
$wnd.Stripe.createToken({
number: creditCard,
cvc: cvc,
exp_month: expiryMonth,
exp_year: expiryYear
}, callBack);
}-*/;
...但是 Stripe javascript 方法是未定义的。
(更多关于 Stripe.createToken 方法https://stripe.com/docs/tutorials/forms#create-a-single-use-token)
使用 CDN url 注入 Stripe javascript 文件:
ScriptInjector.fromUrl("https://js.stripe.com/v1/").setCallback(
new Callback<Void, Exception>() {
public void onFailure(Exception reason) {
}
public void onSuccess(Void result) {
contactStripe("0000111122223333", "456", "04", "2014");
}
}).inject();