Friday, January 24, 2014

External links to open InAppBrowser or System Browser in Phonegap webView application

I had a problem in my phonegap application that open external link within my application. The problem is that my webview page was replaced by external link. What I wanted is that my external link should open up on safari or system browser instead.

So, to resolve the issue here's what I did.

First, we need to add cordova.js in all our pages. The latest cordova.js or phonegap.js can be downloaded from the phonegap website - http://www.phonegap/install.

<script src="js/cordova.js" type="text/javascript"></script>


You might need to install the inappbrowser plugin if needed but I believe on the latest cordova version, this was already part of the framework but just in case you needed, you can execute this command via console on your application directory to install the plugin.

phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git

Next, is to add the 2 javascript function below. I have here 2 function to choose from whether you want the link to open InAppBrowser or System Browser.

<script type="text/javascript" charset="utf-8">
    function openURLInApp(href) {
        var w = window.open(href, '_blank');
        w.opener = null;
        w.document.write('<META HTTP-EQUIV="refresh" content="0; url='+href+'">');
        w.document.close();
    }

    function openURLToBrowser(href) {
        var url = encodeURI(href);
        window.open(url, '_system');
    }
</script>


Finally, we need to call the function above on every external link we want to open on either system browser or in app browser. Please see below.

<a href="#" onclick='openURLInApp("http://www.google.com");'>Google</a>


Hope this will help a lot on developing device application. Happy coding!!

8 comments:

  1. How do I run a function cordova if the command embedded in external sites?

    I want to run a function to open the link in the android browser system. Here is an illustration of my questions. What should I do? I only use javascript not java. Please help

    ReplyDelete
  2. Not sure if I get your question but the function above openURLToBrowser() will open external sites on your android browser and this is via javascript. If you want to call the js function of external site, then probably you can catch it onload like this. var w = window.open(url); w.onload = function() { callfunction(); }; where callfunction() is the function from external site that you just open. Hope this helps.

    ReplyDelete
  3. It’s difficult to acquire knowledgeable people on this topic, but the truth is could be seen as guess what happens you are speaking about! Thanks Home Solution

    ReplyDelete
  4. thanks to the author for taking his time on this one. Hockey Game

    ReplyDelete
  5. An intriguing discussion will be worth comment. I believe that you ought to write read more about this topic, may well be considered a taboo subject but normally consumers are there are not enough to communicate in on such topics. To a higher. Cheers Bullseye in Darts

    ReplyDelete
  6. Thanks for this advice I has been exploring all Yahoo to discover it! immobilien emsland

    ReplyDelete
  7. I admire the dear knowledge you offer in your articles. I will bookmark your weblog and have my kids test up right here generally. I am reasonably positive they will learn numerous new stuff here than anyone else! Badminton Net

    ReplyDelete
  8. my kids really like to play with those assorted pool toys, they specially like pokemon pool toys and stuff like that’ Sacred Flame

    ReplyDelete

Leadership 101


  • Leadership demands sacrifices for the near-term to receive lasting benefits. the longer we wait to make sacrifices, the harder they become. Successful people make important decisions early in their life, then manage those decisions the rest of their lives.
  • Growth does not happen by chance. If you want to be sure to grow, you need a plan something strategic, specific, and scheduled. it's a discipline that would need incredible determination from us.
  • Success comes by going the extra mile, working the extra hours, and investing the extra time. The same is true for us. If we want to get to excel in any segment of life, a little extra effort can help. Our efforts can go a long way if we only work a little smarter, listen a little better, push a little harder, and persevere a little longer.
  • Making a difference in your work is not about productivity; it's about people. When you focus on others and connect with them, you can work together to accomplish great things.
  • Envision a goal you'd like to reach. Make it big enough to scare you a little. Now write down a plan for moving toward it. Create mini-goals within the big goal, to set yourself up for continual progress. And include some risks, too. Set yourself up for success.
  • Leaders build margins, not image. A leader may be forced to take unpopular stands for the good of the company. Popularity isn't bad, but decisions made solely on the basis of popular opinion can be devastating. So take courage and make the right though sometimes painful choices.