Вызов метода из другого действия через JsInterface
Я пытаюсь разработать способ запуска покупки inapp из JSInterface.
У меня есть два класса.
Первый - MainActivity, в котором я реализовал приложение AppBilling с помощью Iabhelper. Это действие содержит метод, который я использую для покупки предмета:
protected void purchaseItem(String sku_item) {
final String sku = sku_item;
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase){
if (result.isFailure()) {
Log.e("PURCHASE","Error : "+ sku);
return;
}
else if (purchase.getSku().equals(sku)) {
Log.e("PURCHASE","OK : " + sku);
}
}
};
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "mypurchasetoken");
}
Второй - это JsInterface, который получает элемент sku от клика пользователя в веб-представлении:
public class jsinterface {
Context mContext;
/** Instantiate the interface and set the context */
jsinterface(Context c) { mContext = c; }
@JavascriptInterface
public void purchaseSku(String sku) {
Log.e("JSInterface","Purchase SKU : " + sku);
MainActivity cls2= new MainActivity();
cls2.purchaseItem(sku);
}
}
Мои тесты показывают, что:
purchaseItem() from MainActivity is ok and functional
purchaseSku() from JsInterface is catching the right sku from user's click
But purchaseSku() seems to fail calling purchaseItem() from MainActivity... Nothing happens. Do you have any idea of what i'm doing wrong and how i can correctly fire purchaseItem() from purchaseSku() ?