由于 URL,Cordova Ionic 电子邮件插件无法在 iOS 9 上运行
Cordova Ionic email plugin not working on iOS 9 due to URL
我正在为我的离子应用程序使用 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 的早期版本上运行良好,还是我无法修复的插件问题?一切都已更新。可能的解决方法或其他插件来使这项工作?我尝试了解决方案 ,但我认为这与我的问题无关。
好的。两个随机猜测。如果这些不起作用,我会删除它。
1) 几天前发布了对 iOS9 的 Cordova 支持。
尝试升级,可能会解决您的问题:
https://cordova.apache.org/announcements/2015/11/02/cordova-ios-3.9.2.html
2) 'mailto:' 可能需要遵守 Cordova 工具 5.x 所需的 whitelist
规则。您需要应用整个 whitelist
或仅应用其中的 CSP
部分。
HOW TO apply the Cordova/Phonegap the whitelist system
我没有看到任何迹象表明这是在新的 Apple ATS 安全过滤器下,但它可能是。
明确地说,将 CSP
应用到网页,然后是 whitelist
和插件,最后是 Apple 的 ATS
。该文档中列出了一些快捷方式。
有什么问题吗?可以确保在我的句柄前使用 @ 以便我收到消息。
我遇到了完全相同的问题。
在添加了 LSApplicationQueriesSchemes 但没有成功后,我在实际设备上进行了尝试,它确实可以正常工作。它只是在模拟器中不起作用。
添加 LSApplicationQueriesSchemes 的快速方法是:
cordova 插件添加 cordova-plugin-queries-schemes
我可以确认,当在配置了邮件客户端的实际设备上安装标准插件(没有 LSApplicationQueriesSchemes
)时,它运行良好。我认为 canOpenURL 问题主要发生在模拟器上。
即使在实际设备上,如果您不设置默认邮件客户端,也会遇到各种奇怪的崩溃(控制器未显示在 UI 视图中,等等)。
只需在配置了邮件客户端的设备上尝试即可。
我正在为我的离子应用程序使用 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 的早期版本上运行良好,还是我无法修复的插件问题?一切都已更新。可能的解决方法或其他插件来使这项工作?我尝试了解决方案
好的。两个随机猜测。如果这些不起作用,我会删除它。
1) 几天前发布了对 iOS9 的 Cordova 支持。
尝试升级,可能会解决您的问题:
https://cordova.apache.org/announcements/2015/11/02/cordova-ios-3.9.2.html
2) 'mailto:' 可能需要遵守 Cordova 工具 5.x 所需的 whitelist
规则。您需要应用整个 whitelist
或仅应用其中的 CSP
部分。
HOW TO apply the Cordova/Phonegap the whitelist system
我没有看到任何迹象表明这是在新的 Apple ATS 安全过滤器下,但它可能是。
明确地说,将 CSP
应用到网页,然后是 whitelist
和插件,最后是 Apple 的 ATS
。该文档中列出了一些快捷方式。
有什么问题吗?可以确保在我的句柄前使用 @ 以便我收到消息。
我遇到了完全相同的问题。
在添加了 LSApplicationQueriesSchemes 但没有成功后,我在实际设备上进行了尝试,它确实可以正常工作。它只是在模拟器中不起作用。
添加 LSApplicationQueriesSchemes 的快速方法是:
cordova 插件添加 cordova-plugin-queries-schemes
我可以确认,当在配置了邮件客户端的实际设备上安装标准插件(没有 LSApplicationQueriesSchemes
)时,它运行良好。我认为 canOpenURL 问题主要发生在模拟器上。
即使在实际设备上,如果您不设置默认邮件客户端,也会遇到各种奇怪的崩溃(控制器未显示在 UI 视图中,等等)。
只需在配置了邮件客户端的设备上尝试即可。