0
votes

I have deployed a native app android + ios with sencha touch + phonegap. If we click a link inside the app it opens inside the app and we cannot go out.

Does someone now how it is posible to let links open into the phone browser?

3

3 Answers

1
votes
window.open("yoururl", '_blank');
0
votes

The phonegap version I used was 2.9.0 if I am not mistaken.

I had the same problem and solved it as follows:

Embed the JQuery javascript file in your project. In my case it was:

<script type="text/javascript" charset="utf-8" src="js/jquery-1.10.2.min.js"></script>

Then I wrote the following function, which I called in the onDeviceReady function:

    function enableHttpLinks() {
        $('.externalLink').click(function(e) {
            e.preventDefault();
            url = $(this).attr("href");
            window.open(url, '_system');
        });             
    }

In order for this function to work, you have a assign the class externalLink to all the links you want to open in the device browser, as shown below:

<a href="..." class="externalLink">your link title</a>

good luck...

0
votes

Just add this function inside "launch" function, in the app.js like this:

launch: function() {
    // Destroy the #appLoadingIndicator element
    //Ext.fly('appLoadingIndicator').destroy();

    // Initialize the main view
    Ext.Viewport.add(Ext.create('yourApp.view.Main'));

    // Voila :
    Ext.Viewport.element.dom.addEventListener('click', function (e) {
        if (e.target.tagName !== 'A') {
            return;
        };

        var url = e.target.getAttribute('href');
        var containsHttp = new RegExp('http\\b'); 

        //if href value begins with 'http'
        if(containsHttp.test(url)) { 
            e.preventDefault();
            window.open(url, "_system"); // For iOS
            navigator.app.loadUrl(url, {openExternal: true}); //For Android
        }
        else {
            return;
        }
    }, false);
}, //...

Then you can build for android and iOS at the same time.