简体   繁体   中英

Webapp for iphone switches from home screen to Safari when url parameters are used

I've developed a web app for the iPhone, and I have it bookmarked and added to my iPhone's home screen. I'm noticing a problem with it, though: it works as intended until I navigate to a page within the app that has a query string and parameters - for example, www.mywebapp.com/page02.html?param1=value&param2=value2 . When I go to a page with such a URL, iOS switches me from the embedded version of Safari to the main Safari app - it takes me out of my app. I don't know why this is happening.

What causes this and what can I do about it?

Many thanks to @BjornKaiser who provided the solution, here is a simple jQuery script that will handle this for you for all links.

Add this to the head section of your master ASP.Net page. Make sure you have jquery included:

<head>
    <!-- Your reference to your jQuery library -->
    <script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>

    <script type="text/javascript">
        $(function() {
          $('a').click(function() {
            document.location = $(this).attr('href');
            return false;
          });
        });
    </script>
</head>

That's the way Apple designed it. If you need a multi-view Web App you need to implement the page switching logic in JavaScript. Everything else will cause the problem you described -> jumping to Safari.

我不确定是什么导致这个问题 ,但是关于UIWebView问题的这个问题有一个解决方案,可以在UIWebView页面中打开一些链接,有些链接在Mobile Safari中打开,所以我敢打赌你可以从中推广到问题的解决方案。

I found the best solution: using client-side data storage. You can use JavaScript to store variables information into the variables localStorage and sessionStorage.

Look at these links: O'Reilly client-side data storage tutorial and Apple key-value client-side data storage tutorial for web apps

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM