【问题标题】:objective c - Open with suggestions when trying to open URL schemes目标 c - 尝试打开 URL 方案时打开建议
【发布时间】:2020-12-14 09:47:12
【问题描述】:

我启动了一个可以处理 SMS 或 Mail url 方案的应用程序,但我不想打开已安装的默认应用程序。我试过这样做

[[UIApplication sharedApplication] openURL: url];

但这会打开默认的短信和邮件应用程序。

我尝试使用 UIActivityViewController

NSString *url=@"mailto:sample@gmail.com";
NSURL *schemeURL = [NSURL URLWithString:url];
NSString * title =[NSString stringWithFormat:@"Send Email",url];
NSArray* dataToShare = @[url];
UIActivityViewController* activityViewController =[[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil]

但这不会用指定的电子邮件预填充收件人字段。

如果行为与 UIActivityViewController 相同,那就太好了,但让我们预先填写收件人等信息。

有什么建议吗?

【问题讨论】:

    标签: ios objective-c deep-linking url-scheme


    【解决方案1】:

    你可以在 macos 上使用非默认应用,但我认为你不能在 iOS 上这样做。看看例如https://developer.apple.com/documentation/uikit/uiapplication/1648685-openurl?language=objc.

    您可以尝试使用类似于下面的 URL 来发送给定的主题和正文。

    @"message://mailto://sample@gmail.com?subject=Subject&body=Body"
    

    我认为如果您删除 message 位,它仍然可以工作。我在某个应用程序的 HTML 页面中使用它。

    如果您需要任何特殊字符,您必须在主题和正文中对它们进行编码。

    【讨论】:

    • 这不适用于 UIActivityViewController。收件人仍将被排除在外
    • 好的 - 尽管在不同的环境中,这对我有用。它应该可以工作,但我不确定。有时您似乎会将其用作mailto:sample@gmail.com,如此处所述developer.apple.com/library/archive/featuredarticles/… 有时您会将@ 编码,有时您会将地址作为参数传递,例如message?mail=omnifocusmadeeasy%40gmail.com 我从 thesweetsetup.com/working-email-urls-macos 得到的
    • 这似乎在 iOS 中是不可能的,因为 Apple 会丢弃收件人并将其简单地放入正文中。似乎可以在 macOS 中使用,但遗憾的是我的目标是 iOS。
    猜你喜欢
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2019-01-11
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多