Error when using mailto: link in Mobile Safari in app-capable mode

前端 未结 4 2007
囚心锁ツ
囚心锁ツ 2021-01-06 02:37

I\'ve got a form in a web page with an action that is \"mailto:email\" (where email is a real email address). When I load this page in Mobile Safari in regular mode (ie, not

相关标签:
4条回答
  • 2021-01-06 02:59

    This accurately describes the issue. There is nothing wrong with the mailto link, the mailto link fails to load. Often the webapp crashes.

    The funny thing is that tel: link for telephone numbers work fine.

    window.location.replace does in-fact work. Thanks!

    Here is the jQuery to fix this automatically...

    $('a[href^=mailto]').click(function (event) {
        event.preventDefault();
        window.location.replace = $(this).attr('href');
        return false;
    });
    
    0 讨论(0)
  • 2021-01-06 03:00

    I think I've figured this out. I noticed when in app-capable mode, any http link will take you out of the app and launch a separate mobile safari window, take you to the page and show the Safari chrome. Makes sense (typically one wouldn't link to anything from an "all in one" app-capable web app. I noticed this because I implemented a 4 page app with my own "tab bar" at the bottom and was linking amongst the .html files with plain http links in the a element. When I replace this with a javascript function to load the pages using document.location.replace this doesn't happen.

    So, on the form - I think what must be happening is that because I'm using a scheme (in this case, mailto:) somehow the browser is needed in "regular mode" to interpret the scheme and do the right thing by launching the email app and this clearly doesn't work when submitting a form. I haven't yet found anything in the Apple documentation specifically about this, so if anyone knows the technical details, please do post!

    UPDATE: I did find that I can access a server side script using a form in web-app mode, so I'm still curious about the mailto: issue, if anyone has an answer.

    Thanks,

    Elisabeth

    0 讨论(0)
  • 2021-01-06 03:05

    I am having the exact same issue with mailto links not working in the web capable mode. I just got done submitting a bug report to Apple. Let's see what happens, meanwhile I found another dev. platform for web apps that works in web capable mode and mailto links work, but it is funny how it works in this even--it is not as fluid as it is in Safari. Because even in this new web dev tool that I found, it closes your app and launches mail client, which is lame. In Safari it just slides in a mail window that slides back out if you hit cancel or send--it doesn't actually close your app.

    0 讨论(0)
  • 2021-01-06 03:05

    Here is a workaround that does not depend on JQuery:

    aTmp = document.createElement("a");
    aTmp.href="mailto:example@example.com?subject=Test&body=Hello.";
    aTmp.click();
    

    Update: To run this code from a bookmarklet you have to wait about 1000 ms before the bookmarks bezel is closed and the browser is ready to respond. I realized this by wrapping the code in a setTimeout function.

    0 讨论(0)
提交回复
热议问题