0

sencha touch + phonegap を使用してネイティブ アプリ android + ios をデプロイしました。アプリ内のリンクをクリックすると、アプリ内で開き、外出できません。

リンクを携帯電話のブラウザで開くことができる方法はありますか?

4

3 に答える 3

0

次のように app.js の「launch」関数内にこの関数を追加するだけです。

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 に答える