Sencha with phonegap Native打开外部链接

时间:2013-06-03 08:23:51

标签: extjs cordova external-url

我已经部署了原生app android + ios和sencha touch + phonegap。 如果我们点击应用内的链接,它会在应用内打开,我们无法外出。

现在有人将链接打开到手机浏览器中是否可行?

3 个答案:

答案 0 :(得分:1)

window.open("yoururl", '_blank');

答案 1 :(得分:0)

如果我没弄错的话,我使用的手机版本是2.9.0。

我遇到了同样的问题并解决了如下问题:

在项目中嵌入JQuery javascript文件。就我而言,它是:

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

然后我编写了以下函数,我在onDeviceReady函数中调用了它:

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

为了使此功能有效,您可以将类externalLink分配给要在设备浏览器中打开的所有链接,如下所示:

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

祝你好运......

答案 2 :(得分:0)

只需在“启动”功能中添加此功能,就像这样的app.js:

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);
}, //...

然后你可以同时为Android和iOS构建。