Showing posts with label iphone. Show all posts
Showing posts with label iphone. Show all posts

Wednesday, February 06, 2013

Add iAd to PhoneGap Application

This post derives from the SiteKickr Blog post "PhoneGap/Cordova and iAd integration." I got stuck in a couple of spots and decided to attempt to lend a little clarity for anyone else seeking a solution. I've also taken a couple of the comments from that post and integrated here.

1. Click on the "Project Navigator" icon in the left most panel in XCode.



2. Click on the top-most item in your hierarchy. 



3. Click on the Build Phases tab. 



4. Expand "Link Binary with Libraries."



5. Click the + icon to add the iAd.framework to your project.



6. In your App -> Classes folder, open up MainViewController.h, and drop in the following code after any existing #import statements but before @end:

 #import <iAd/iAd.h>
 @interface MainViewController : CDVViewController {  
   ADBannerView *adView;  
 }   



7. Open up MainViewController.m


8. In your viewDidUnload method, which should already exist, add:

 [adView release];   



9. In your webViewDidFinishLoad method, add the following just before: 
"return [super webViewDidFinishLoad:theWebView];"

   adView = [[ADBannerView alloc] initWithFrame:CGRectZero];  
   CGRect adFrame = adView.frame;  
   if([UIApplication sharedApplication].statusBarOrientation  
     == UIInterfaceOrientationPortrait  
     || [UIApplication sharedApplication].statusBarOrientation  
     == UIInterfaceOrientationPortraitUpsideDown) {  
     adView.currentContentSizeIdentifier =  
       ADBannerContentSizeIdentifierPortrait;  
     adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height;  
   } else {  
     adView.currentContentSizeIdentifier =  
       ADBannerContentSizeIdentifierLandscape;  
     adFrame.size.width = adView.frame.size.width;  
     adFrame.origin.y = self.view.frame.size.width-adView.frame.size.height;  
   }  
   adView.frame = adFrame;  
   [self.view addSubview:adView];  


10. If you don't already have a willAnimateRotationToInterfaceOrientation method, add it, and drop in the following code:

   BOOL hide = (newInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || newInterfaceOrientation == UIInterfaceOrientationLandscapeRight);  
   [[UIApplication sharedApplication] setStatusBarHidden:hide withAnimation:UIStatusBarAnimationNone];  
   CGRect mainFrame = [[UIScreen mainScreen] applicationFrame];  
   [self.view setFrame:mainFrame];  
   if (newInterfaceOrientation != UIInterfaceOrientationLandscapeLeft && newInterfaceOrientation != UIInterfaceOrientationLandscapeRight) {  
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;  
     [self.view bringSubviewToFront:adView];  
     adView.frame = CGRectMake(0.0, self.view.frame.size.height - adView.frame.size.height, adView.frame.size.width, adView.frame.size.height);  
   }  
   else {  
     adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierLandscape;  
     [self.view bringSubviewToFront:adView];  
     adView.frame = CGRectMake(0.0, self.view.frame.size.width - adView.frame.size.height, adView.frame.size.width, adView.frame.size.height);  
   }  


A couple of points of note regarding ad placement:
- iAd is not like Adwords or Admob. Ad placement is not done in your HTML and does not use your javascript or CSS.

- By default, the ad will be placed on the bottom of your app's UI. To change the position of the ad, you'll need to edit all instances of the value of adFrame.origin.y to equal 0 (adFrame.origin.y=0).

- After you're done and ready to deploy, you'll need to enable iAd in your application through iConnect. Keep in mind you can only do this AFTER you upload your app.

  1. Log in to iTunes Connect
  2. Click on "Manage Your Applications"
  3. Click on the App you want to enable iAd on.
  4. Click on the blue "Set Up iAd Network" button.
  5. Follow the instructions.

That's it! Good luck.

UPDATE 03.06.2013: Check out this great response at StackOverflow regarding not showing the ad placeholder if an ad is not delivered: http://stackoverflow.com/a/14764349/2037540

UPDATE 04.17.2013: Brandon Hawkins has come up with a great solution to deal with the issue of the ad frame setting on top of the webview. Check it out here: http://hawkinbj.wordpress.com/2013/04/16/implement-iad-banner-ads-without-covering-uiwebview-in-phonegap/

Tuesday, August 23, 2011

Unsync/Remove Gmail Contacts from iPhone

Somehow you managed to get every single person you've ever emailed jammed into your iPhone right?

This solution assumes you have a Mac & an iPhone:
1. On your Mac, open "address book"
2. Click on File -> New Smart Group...
3. In Smart Group Name, type "iPhone Tmp"
4. In the first drop-down menu, select "Phone"
5. In the second drop-down menu, select "is set"
6. Click "OK"
7. Click File -> New Group
8. Name the group "iPhone Contacts"
9. Click on the "iPhone Tmp" group and drag all of the contacts from that group into "iPhone Contacts"
10. Plug your iPhone into your Mac and open iTunes.
11. Click on your phone listed in "Devices"
12. Click on the "Info" tab/button.
13. Check the "Sync Address Book Contacts" checkbox.
14. Check "Selected groups"
15. Check "iPhone Contacts"
16. Make sure nothing else on the page is checked.
17. Sync.
18. Be happy.

Monday, June 14, 2010

Apple likes my wife.

To date, I've built 3 iPhone Web Apps. None of them would be considered functionally unique or powerful by any stretch, HOWEVER... and it's a big HOWEVER... so far... ready for this?

Two out of the three have earned "Staff Pick" awards from Apple!

As much as I would like to take credit for being an absolute genius, it would appear that Apple has a thing... for my wife.

The two awarded iPhone Apps are "Mila's Tools", a simple Unit Conversion Calculator and "VeganMunch Kombucha Calculator" a simple Kombucha recipe calculator. Both are basically products of my wife, Mila.

The other App - Scott's Pinger, a simple web site monitor, of which I am very proud - got nothin'. Nada. Zilch. Zippo.

I guess I'll be asking Mila for more App ideas.

In the meantime, while waiting for Mila to tell me what App to build next, I decided to put a Mini-App of sorts together as a portal to all of my apps. The idea being, as I deploy new iPhone apps, they'll be listed in the portal app.

Check it out from your iPhone here: Scott's iPhone Web Apps. Don't forget to add it to your Home screen.

Back to the grind. Uhm... eh ehm... Mila? What am I building next?

Cannot Process Command: Internal Error.

*Knock, knock. knock.*

Apple? Hello? Apple?

Apple!

Is there anyone even home over at the Apple iPhone Web Apps site?

For the love of Pete already. After all of the hubub from Jobs about HTML 5, Safari 5, Web Apps, iPhone 4 and all of the other greatness spewing from the pores of Apple, you'd think maybe they'd have someone over there keeping an eye on the Web Apps site.

Intermittently, THE VAST MAJORITY of the web app links point to this lovely page:

Cannot Process Command: Internal Error.Cannot Process Command: Internal Error. I'm now having nightmares about this page! How many e-mails do I have to send!? How many forums need to be screaming!?

PLEASE... someone at APPLE... FIX THE DAMN LEAK. Oh... wait... wrong rant... Nevertheless!!! FIX IT ALREADY!

K. I feel better. Love you Apple. :)

If you're experiencing the same issue at Apple.com, please leave a comment below. A few more voices couldn't hurt.

Saturday, May 22, 2010

"Mila's Tools" on the Apple Web Apps homepage

Let me tell you something... if you've built yourself a simple iPhone Web App... and you'd like to get a few hundred users REAL QUICK... SUBMIT YOUR APP TO THE APPLE WEB APPS DIRECTORY. Run. Don't walk. Run to the Apple Web Apps site and do it now.

I about fell out of my chair after submitting my app late one night only to wake up to 100s of new users. Upon checking the directory, there it was... right on the Apple Web Apps home page as a "Staff Pick" - "Mila's Tools", my new iPhone Unit Conversion App.

Pure awesomeness, drenched in awesome juice.



Sunday, May 16, 2010

iPhone Unit Conversion Calculator

So, I dove into jQuery and jQTouch development for the iPhone and all I know is, I can't wait to do it again.

Wow, wow, wow... talk about easy-peasy-Japanese. I could not have been more impressed. The functionality of the unit conversion calculator in-and-of-itself is nothing to write home about BUT, that which comes with employing jQuery + jQTouch most certainly is.

Wowsers. Yep. That's all I got. Wowsers.

The iPhone app includes four conversion calculators - a length converter, liquid converter, temperature converter, and time converter. From your iPhone, check out the converter here: iPhone Unit Conversion Calculator.

Don't forget to add it as a full screen app by hitting the + sign. :)