从ios webapp链接启动safari

时间:2014-07-15 11:19:50

标签: javascript ios iframe safari

我想在我的ios webapp中加入一些Instagram照片,每次点击一张照片,打开Instagram投票。

由于iframe,我遇到了一些问题,我无法在iframe中显示Instagram,以便将其保留在我的网页内,并有一个按钮可以返回。因此,我正在尝试启动safari以打开该链接,以便我可以对该页面进行投票并将应用程序更改为我的。

在Android中我没有问题,因为我在手机上有后退按钮,在winpho中也是如此。

我用Instagram链接拨打其他页面,这是javascript中的代码:

    <body id="responsiveDemo">  
    <div data-role="page" id="test" data-theme="g">
        <div data-theme="g" data-role="header">
            <a href="javascript:history.back()" data-icon="back" data-iconpos="notext"></a>
            <h1>Instagram</h1>
        </div>

        <div data-role="content">

        <iframe id="iframeInstagram" src="" name="IframeInstagram" style="width: 100%; height: 800px; border: medium none;visibility: visible;"></iframe>

      <!--  <img id="iframeInstagram" src="">-->

                    <script>
    $(document).on("pageshow", '#test', function() {
                    var query = location.search.substring(1);
                    //console.log(query);
                    var parameters = {};
                    var keyValues = query.split(/&/);
                    for (var i = 0; i < keyValues.length;i++) {
                        var keyValuePairs = keyValues[i].split(/==/);
                        var key = keyValuePairs[0];
                        var value = keyValuePairs[1];
                        parameters[key] = value;
                    }




                        var is_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
                        var is_safari_or_uiwebview = /(iPhone|iPod|iPad).*AppleWebKit/i.test(navigator.userAgent);

                        if(is_safari_or_uiwebview){ //Es un ios
                            var a = document.createElement('a');
                            a.setAttribute("href", parameters['instagram']);
                            a.setAttribute("target", "_blank");

                            var dispatch = document.createEvent("HTMLEvents");
                            dispatch.initEvent("click", true, true);
                            a.dispatchEvent(dispatch);
                        }else{ //No es un ios
                            document.getElementById('iframeInstagram').src = parameters['instagram'] + 'embed';
                        }

                        });




                    </script>



        </div> <!-- /content -->
    </div>
    </body>

我可以尝试使用ios模拟器,因为至少在今天下午或明天我都不会有手机。

你能否告诉我这是否是从webapp打开safari的正确方法?在模拟器中,它使所有在同一个应用程序,而不是打开safari。我猜,IOS7是主要目标

我正在读它并且我很困惑。在一些帖子中看来,在ios7中这是有效的,在其他帖子中,它取决于更新......

0 个答案:

没有答案