0

質問があります。収益化のために、アプリにw3iオファーウォールを追加しようとしています...これがSDKガイドです:https : //associate.w3i.com/integration/index.htmlオファーウォールを簡単に追加しました。しかし今、私はユーザーが獲得したものを変数で現金化する必要があります...ガイドは言います:

通貨の引き換え通貨の引き換えは、アプリケーションが開くたびに、アプリケーションが起動するたびに発生する必要があります。オファーアラートダイアログを表示している場合は、最初にredeemCurrency()を呼び出し、すぐにshowFeaturedOffer()を続けることをお勧めします。これにより、オファーアラートが表示される前に、最後に完了したオファーから通貨を受け取るユーザーの論理フローが作成されます。通貨の引き換えを処理するメソッドはredeemCurrency()であり、次の署名があります。

public void redeemCurrency(final Activity context, W3iCurrencyListener listener )

この方法では、通貨が引き換えられたときにユーザーにメッセージダイアログが表示されるため、アプリケーションコンテキストではなく、現在のアクティビティコンテキストが必要です。さらに、W3iCurrencyListenerインターフェースの実装を提供する必要があります。次に、アプリケーションはW3iCurrencyListenerインターフェースの実装を提供する必要があります。W3iCurrencyListenerインターフェースは、通貨が返されたことをゲームに通知するために使用されます。残高はリストコレクションとして返されます。実装例は次のとおりです。

W3iCurrencyListener callback = new W3iCurrencyListener() {
              @Override
              onRedeem(List<Balance> balances) {

                     //Take possession of the balances returned here.             

              }
};

アプリケーションが複数の通貨をサポートしている場合、Balanceオブジェクトのコレクションはさまざまな通貨タイプ用である可能性があります。redeemCurrency()の呼び出しが成功すると、残高のコレクションを受け取ります。そうでない場合、onRedeem()コールバックは起動しません。このメソッドは、ユーザーがアプリケーションをダウンロードしてインストールするか、アプリ以外のオファーに対して別のアクションを完了することによってオファーを変換しない限り、通貨を返しません。

このコードの使用方法がわかりませんが、リターンを変数に設定するにはどうすればよいですか?今、私はtheireのオフィスが閉鎖されていることを願っています、それで私はあなたにそれをお願いします... Thakns、matteo

4

1 に答える 1

0

私も同様の問題に直面しました。私は彼らのcom.w3i.offerwall.W3iCurrencyListenerを実装し、それを使用してredeemCurrency()を呼び出しました。

ランチャーアクティビティでredeemCurrency()を呼び出しています。私のW3IListenerはonRedeem()メソッドをオーバーライドします。次のコードスニペットが疑問を解消することを願っています。

 public class MyGame extends Acitvity{
     private W3iCurrencyListener w3iListener = new W3iListener(this);
     public static int coins = 0;
     @Override
     protected void onResume(){
         try{
             w3iInstance.redeemCurrency(this, w3iListener);
         }
         catch (Exception e){
            e.printStackTrace();
         }
     }
 }


public class W3iListener implements com.w3i.offerwall.W3iCurrencyListener{

    private Context mContext = null;

    public W3iListener(Context context){
        mContext = context;
    }   


    @Override
    public void onRedeem(List<Balance> paramList) {
            if(paramList.size()>0)
            {
                int coins = 0;
                for(int i=0; i<paramList.size(); i++){
                    coins += Integer.parseInt(paramList.get(i).getAmount());
                }
                MyGame.coins = coins + MyGame.coins;
            }
    }
}
于 2012-10-29T10:33:26.030 に答える