Solution for HTML pop-up problem in AIR

24 04 2008

From the past few days, I’m seeing a problem with AIR HTML Component that is being reported by many users in many forums. So, i thought of giving a small solution which will help developers to overcome this problem.

Problem

AIR HTML Component fails to open new HTML pop-up window when the “target” of the link is set to “_blank” or “_new”.

Solution

The solution is very straight and simple.

Step 1 – Get all the available links of the page after it is completely loaded and add “onClick” event listener to all required links.

Step 2 – Get the Link’s URL in “onClick” event handler and open a new browser window using “navigateToURL()” or implement a custom window in AIR to handle this.

Code


<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:HTML id="htmlComp" width="100%" height="100%" location="http://www.rediff.com" complete="addEventListenersToLinks(event)"  />
 
 <mx:Script>
  <![CDATA[
   
   private function addEventListenersToLinks(e:Event):void
   {
    var dom:Object = e.currentTarget.domWindow.document;
    var links:Object = dom.getElementsByTagName("a");
    
    for(var i:Number = 0; i < links.length; i++)
    {
     if(links[i].target.toLowerCase() == "_blank" || links[i].target.toLowerCase() == "_new")
      links[i].onclick = linkClickHandler;
    }
   }
   
   private function linkClickHandler(o:Object):void
   {
    navigateToURL(new URLRequest(o.currentTarget.href),"blank");
   }
  ]]>
 </mx:Script>
</mx:WindowedApplication>

Advertisements




IMAP/POP Email validation in AIR/Flex

22 04 2008

I was developing an AIR application recently and wanted to validate the email credentials of the user.

I searched a lot and could not get any component, library or code snippet available to do this in Flash/Flex/AIR.

So, I thought of developing a small library of my own and sharing it with the community. And here it is…

IMAP/POP Email Validator

This is a small set of class library which Flex/AIR developers can use to validate any IMAP or POP email logins. This does NOT use Coldfusion or LCDS server in the backend. This connects to given IMAP/POP server using Flash Socket and executes required commands to validate the login.

Example

E-Mail Validator Example Screenshot

Checkout the above Sample ( Save the SWF locally and play with it )

Download source

Due to cross domain restrictions in Flash Player, when this application is hosted on any domain other than mail server’s domain, a “crossdomain.xml” file needs to be configured and kept on the mail server.

But, this issue does not come in AIR based applications and Flex applications that are running locally.

So, grab a copy, check out the samples and try it with your Intranet/Internet apps..