0

我已经部署了一个带有 sencha touch + phonegap 的原生应用程序 android + ios。如果我们点击应用程序内的链接,它会在应用程序内打开,我们不能出去。

有人现在如何让链接在手机浏览器中打开?

4

3 回答 3

1
window.open("yoururl", '_blank');
于 2013-06-03T11:57:35.153 回答
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 构建。

于 2013-12-17T23:01:24.983 回答
0

如果我没记错的话,我使用的 phonegap 版本是 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>

祝你好运...

于 2013-08-23T09:00:39.963 回答