【问题标题】:Cordova Ionic email plugin not working on iOS 9 due to URL由于 URL,Cordova Ionic 电子邮件插件无法在 iOS 9 上运行
【发布时间】:2015-10-07 05:16:03
【问题描述】:

我在我的 ionic 应用程序中使用 email composer plugin,但我在 iOS 9 上遇到了一个问题,我无法使用外部电子邮件应用程序。我尝试将以下内容添加到 plist,因为它是一个 url 方案,但这似乎没有帮助。

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>mailto</string>
    </array>

xcode 给出的错误:

2015-10-06 22:10:45.037 NSP[1830:29571] -canOpenURL: failed for URL: "mailto:test@test.de" - error: "(null)"
2015-10-06 22:10:45.044 NSP[1830:29571] -canOpenURL: failed for URL: "mailto:test@test.de" - error: "(null)"
2015-10-06 22:10:45.047 NSP[1830:29571] -canOpenURL: failed for URL: "mailto:test@test.de" - error: "(null)"

是的,一次调用有 3 个错误。这是调用代码:

$cordovaEmailComposer.isAvailable().then(function () {
                $cordovaEmailComposer.open({
                    to: [], // email addresses for TO field
                    cc: [], // email addresses for CC field
                    bcc: [], // email addresses for BCC field
                    attachments: [], // file paths or base64 data streams
                    subject: item.name, // subject of the email
                    body: item.name + " download link: " + item.link, // email body (for HTML, set isHtml to true)
                    isHtml: false, // indicats if the body is HTML or plain text
                }, function () {
                    //console.log('email view dismissed');
                }, this);
            }, function () { //Not available
                MessageBox.ShowAlert("Unavailible", "Email is currently unavailable on this platform");
            });

有没有办法解决这个问题?它在 android 和早期版本的 iOS 上运行良好,还是我无法修复的插件问题?一切都更新了。可能的解决方法或其他插件可以使这项工作?我尝试了here 的解决方案,但我认为这与我的问题无关。

【问题讨论】:

  • 您的问题解决了吗?如果有,答案是什么?
  • 不,我没有,但是有人在他们的 github 页面上打开了一个问题,链接到这个问题github.com/katzer/cordova-plugin-email-composer/issues/142
  • 在添加 LSApplicationQueriesSchemes 后没有运气,我在实际设备上进行了尝试,它确实可以正常工作。它只是在模拟器中不起作用。

标签: cordova ios9 cordova-plugins


【解决方案1】:

我也遇到了同样的问题。

在添加 LSApplicationQueriesSchemes 但没有运气后,我在实际设备上进行了尝试,它确实可以正常工作。它只是在模拟器中不起作用。

添加 LSApplicationQueriesSchemes 的快速方法是:

cordova 插件添加cordova-plugin-queries-schemes

【讨论】:

    【解决方案2】:

    好的。两个随机猜测。如果这些不起作用,我将删除它。

    1) 几天前刚刚发布了对 iOS9 的 Cordova 的支持。

    尝试升级,可能会解决您的问题:

    https://cordova.apache.org/announcements/2015/11/02/cordova-ios-3.9.2.html

    2) 'mailto:' 可能需要遵守 Cordova Tools 5.x 所需的 whitelist 规则。您将需要应用整个 whitelist 或仅应用其中的 CSP 部分。

    HOW TO apply the Cordova/Phonegap the whitelist system

    我没有看到任何迹象表明这在新的 Apple ATS 安全过滤器下,但它可能是。

    为了清楚起见,将CSP 应用于网页,然后是whitelist 和插件,最后是Apple 的ATS。该文档中详细说明了一些快捷方式。

    有什么问题吗?一定要在我的句柄前使用@,以便我收到消息。

    【讨论】:

      【解决方案3】:

      我可以确认,当股票插件(不是LSApplicationQueriesSchemes)安装在配置了邮件客户端的实际设备上时,它工作得很好。我认为 canOpenURL 问题主要发生在模拟器上。

      即使在实际设备上,如果您不设置默认邮件客户端,那么您会遇到各种奇怪的崩溃(控制器不会显示在 UI 视图中等)。

      只需在配置了邮件客户端的设备上试用即可。

      【讨论】:

        猜你喜欢
        • 2018-10-25
        • 2018-02-08
        • 2016-03-29
        • 2020-09-09
        • 1970-01-01
        • 2017-01-18
        • 2019-11-20
        • 1970-01-01
        • 2015-04-09
        相关资源
        最近更新 更多