Fengist's Forum Posts

  • Wings 3D

  • Fengist : https://www.scirra.com/tutorials/4848/how-to-get-admob-official-plugin-working-on-android-crosswalk

    Here is the "non-existent" tutorial.

    Kyatric Ok, it does exist. It's the same tutorial Ashley pointed me to THREE MONTHS AGO... which I followed the instructions for... and it didn't work. Read back in this thread and you'll see that. If you've updated that tutorial... splendid. But since it's taken SIX MONTHS to... maybe get an answer through an unofficial tutorial update that may or may not work properly this time... I've already paid someone for a solution that worked the first time.

    You'll forgive me being a bit perturbed, but rooting through tutorials and reading the same one over and over again to see if it's been changed is NOT how I expect to get support.

    Yes, close and lock this thread. I'm tired of getting pissed every time I look at it.

  • lol... and this is exactly why I gave up. 6 months after I start this thread, I'm referred to a non-existent tutorial and the thread is closed.

    Now you know why I'm using cranberry's plugins. Pretty sad.

  • I can understand the Chrome web not working. He plainly stated when it came out it was in testing.

    Not working on google play? Are you kidding? The biggest market out there?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • LOL, I've pretty much given up on developing anything else with this software. The fact that all I got for support was... read the tutorial... told me Ashley doesn't really want spend any time fixing this.

    Last I tried, Chrome Web Store and IAP did not work.

  • Hi cranberrygame

    Just bought your plugins and the IAP worked great. Ran into one minor problem. I shut down and restarted my phone and while it was still loading I ran my app with the IAP plugin and got this error.

    java.lang.IllegalStateException: Can't start async operation (refresh inventory) because another async operation(refresh inventory) is in progress.
    	at com.smartmobilesoftware.util.IabHelper.flagStartAsync(IabHelper.java:821)
    	at com.smartmobilesoftware.util.IabHelper.queryInventoryAsync(IabHelper.java:613)
    	at jp.wizcorp.phonegap.plugin.wizPurchase.IAP$2.onIabSetupFinished(IAP.java:288)
    	at com.smartmobilesoftware.util.IabHelper$1.onServiceConnected(IabHelper.java:260)
    	at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1265)
    	at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1282)
    	at android.os.Handler.handleCallback(Handler.java:739)
    	at android.os.Handler.dispatchMessage(Handler.java:95)
    	at android.os.Looper.loop(Looper.java:145)
    	at android.app.ActivityThread.main(ActivityThread.java:5942)
    	at java.lang.reflect.Method.invoke(Native Method)
    	at java.lang.reflect.Method.invoke(Method.java:372)
    	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
    [/code:h1fq5zue]
    
    That's the report sent to the Google Play Dev Console.  I'm guessing this happened because the phone was still booting up and I ran the app at the same time.  But, it crashed the app.
    
    I ran the app again a few seconds later and no problems.
  • Ok, I got sick of waiting for a response and ditched my principles. I followed Reinarte lead and bought Cranberry's plugins. His IAP worked perfect the first time and it was no more difficult to set up in XDK than the official one was.

  • I think you're all missing a very BIG point. He shouldn't even have to consider pirating Cranberry's work. The official IAP should work. Period.

  • Ah, the cranberry plugin.

    I have a problem with paying one guy for a piece of software that claims to work and then having to pay another guy to get it to work. While his price is very, very reasonable... on principle the one I've already paid for should work. However, all I've gotten in the past four months is the directions to a tutorial.

  • .................. IAP ORDER ..................

    Start Layout -> Add products.....

    Request store listing

    On Store Listing Sucess -> Restore Purchases

    On Restore Purchases Sucess ->

    Has Product ".........."

    Boy, that would be nice. Unfortunately On Restore Purchases Success doesn't exist.

  • Bug 1 & Bug 2: Store available and store listing have to come back true in order to get these. When first starting up the project they don't always get returned immediately. I put in a loop where it would attempt to get the listing. If it failed, it would wait 2 seconds and try again. If it failed 5 times, it would assume that the store simply wasn't there and proceed. Yes it's an issue but I could find no other way to get it to work consistently.

    Bug 3: don't have this problem

    Bug 4: Correct AFAIK. I've tried with test mode on and off and makes no difference. If you want to do test purchases, you'll have to set up beta testers and add the email they use to log into google. Then, it will do the purchases but not deduct money from any account.

    Bug 5. I believe this has to do with Android caching the purchase info. If you cancel the purchase in the Google Dev Console it may take a while for it to get to the Android device. One test I haven't done is to cancel the purchase then turn the phone off and back on to clear that cache. Otherwise, it will eventually come back as false.

    Bug 6. I haven't tried an 'inverse' as I can't even consistently get the has product result on starting my app.

    Here's the thread I've been trying to get help on:

  • Ashley

    Ok, I do have it working now but only partially.

    If I make the purchase, shut the app down and restart the app, Has product comes back true.

    If I turn the phone off, turn it back on and run the app, Has product comes back false even if it's been purchased. If I then shut the app down and run it again, Has product comes back true.

    It appears to me there is a delay in initially getting Has product to the app so that on the first run, it doesn't get the response before the app has finished starting up. When the response does arrive, my Android device seems to be caching that information so that when I run it again, it finds it in the cache and gets the proper response.

    Because Has product is a true/false and not an event that I can associate a trigger to, I've tried adding in delays to make certain that the store is available and that the store listing success comes back true. I assumed that if store listing success came back true then Has product would be in there. Not so.

    When/How is the response for Has product being retrieved? Is there any way to make certain the app has gotten an actual response for Has product?

    I could use a stored variable to record when the purchase was made but, this becomes a problem when a purchaser requests a refund or to cancel the purchase.

    As it is now, I can never really be certain from the app's point of view if they have or have not made the in-app purchase.

  • I think what he means Ashley is if you put the C2 main form on a monitor that isn't the #1 monitor, all of the dialog boxes will still pop up on the #1 monitor. Even if you drag the dialog boxes over to say monitor #2, when they pop up again, they're back on monitor #1.

    Not sure I'd call it a bug, but it's a minor nuisance when you're working with dual monitors and have C2 on anything but the #1 monitor.

    I'm not sure what language you write C2 in but in Delphi for example, you can set dialog boxes to automatically pop up at the main form center. I then have a component that stores the screen location of those dialog boxes in the registry so the next time the user pops them up, they're at the spot where the user placed them.

    I'm sure you're aware that even then other problems arise, like when the user puts everything on monitor #2 and then disconnects monitor #2 and restarts the main program. The dialog boxes can end up completely off screen.

  • Ashley

    I got it working. I now have a 'Has Full Version' returning true after a purchase has been made with the test capx. But...

    If you follow the tutorial it will still refuse to build in XDK. Here's what I had to do.

    • I went through every XML for the C2 export and every XML that XDK created in the project directory and removed every reference to com.mcm.plugins.androidinappbilling.
    • I manually added the cc.fovea.plugins.inapppurchase plugin to the XDK project.
    • I wasn't sure if the plugin you recommended in the tutorial was causing the issue or not so I found the cc.fovea.cordova.purchase which seems to work the same as it required the Google API key and maunally added it to the XDK project. (found here: https://github.com/j3k0/cordova-plugin-purchase)

    The project built with no issues and now I'm able to get

    Store Available

    Listing Success

    Product Name

    Purchase Price

    Has Product

    So far cancelling the product purchase in Google Merchant Services hasn't reverted the Has Product back to false but that may just be a delay in Google's system and probably not a C2 issue.

    This bug may be an issue with XDK automatically adding the com.mcm.plugins.androidinappbilling. I don't know enough about it to say. I'm just hacking my way through and making semi-educated guesses. You may want to confirm all of this and decide whether it's still an XDK issue or a C2 issue and possibly update the tutorial and/or send a note off to Intel letting them know.

    One thing I noticed is that XDK does give a warning when you import the C2 project that adding plugins via the .XML has known issues.

    Anyway, thanks for pointing me in the right direction for a solution. I can now begin work again!!!

    And as for the Chrome and Amazon web... I did read that they were experimental and you didn't get a lot of feedback. I can live without them. Google Play is the big one on the block and once I get rolling again I can test the Amazon store to see if it works with a normal app and not just a web app. The basic plan was to have freemium versions on them. But if IAP doesn't work I can still use them for promotional put free versions on them to point the way to the Android app. If you do want them tested, add a note in the patch notes that get e-mailed out when you release updates (that way I'll see it) and I'll be happy to report any progress on them.

    Thanks again. I'm a happy coder now.