Tôi muốn gửi tin nhắn với dữ liệu hình ảnh. Vì vậy, tôi đã sử dụng MFMessageComposeViewController
. Nhưng bộ điều khiển đó chỉ cung cấp dịch vụ SMS. Vì vậy, tôi đã sử dụng UIPasteBoard
đính kèm dữ liệu hình ảnh. Nhưng nó cũng không hoạt động. Không có nút "Dán" được tạo khi nhập tin nhắn. Việc đính kèm hình ảnh tại UIPasteBoard
rõ ràng là thành công. Tôi nghĩ việc sử dụng MFMessageComposeViewController
không giải quyết được sự cố của mình. Làm cách nào để hoàn thành mục tiêu của mình?Cách đính kèm hình ảnh với tin nhắn qua ứng dụng iPhone?
Trả lời
Điều này là không thể với API MessageUI hiện tại: MSMessageComposeViewController không chấp nhận các tệp đính kèm như MFMailComposeViewController.
Cách duy nhất để thực hiện điều này hiện nay là sử dụng dịch vụ bên ngoài cho phép bạn gửi mms qua cuộc gọi REST chẳng hạn.
GSMA định nghĩa một đặc điểm kỹ thuật REST cho mục đích này chính xác: http://www.gsmworld.com/oneapi/reference_documentation-version_1.html (nhiều pdf trên trang này)
Cố gắng tìm một nhà cung cấp dịch vụ địa phương mà thực hiện kỹ thuật này và bạn tốt để đi.
Chỉ cần thêm liên kết wiki trực tiếp vào thông số MMS OneAPI: http://gsma.securespsite.com/access/Access%20API%20Wiki/MMS%20RESTful%20API.aspx và liên kết đến hộp cát PHP/Java https://github.com/OneAPI/GSMA-OneAPI nơi MMS có thể được kiểm tra cục bộ. Chúc mừng.
Tôi có cùng một câu hỏi mà tôi được đăng here. Có một lỗi trong MFMessageComposeViewController
và nếu bạn chỉ cần sử dụng mã bên dưới nó sẽ khởi động một thông điệp rằng bạn có thể chèn hình ảnh vào
NSString *phoneToCall = @"sms: 123-456-7890";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];
thậm chí đơn giản hơn, ít nhất là trên iPhone 4S, bạn có thể xóa số điện thoại giả và mã hóa - tất cả những gì bạn cần là: 'NSURL * url = [[NSURL alloc] initWithString: @" sms: "];' then ' [[UIApplication sharedApplication] openURL: url]; ' – toblerpwn
Đây là làm việc đúng và nó hoạt động hoàn hảo trên thiết bị của tôi.
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.persistent = NO;
NSMutableDictionary *text = [NSMutableDictionary dictionaryWithCapacity:1];
[text setValue:label.text forKey:(NSString *)kUTTypeUTF8PlainText];
NSMutableDictionary *image = [NSMutableDictionary dictionaryWithCapacity:1];
[image setValue:imageView.image forKey:(NSString *)kUTTypePNG];
pasteboard.items = [NSArray arrayWithObjects:image,text, nil];
NSString *phoneToCall = @"sms:";
NSString *phoneToCallEncoded = [phoneToCall stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
NSURL *url = [[NSURL alloc] initWithString:phoneToCallEncoded];
[[UIApplication sharedApplication] openURL:url];
kUTTypeUTF8PlainText và kUTTypePNG là gì? – Rick
@Rick Xem [link] này (https://developer.apple.com/library/mac/documentation/MobileCoreServices/Reference/UTTypeRef/Reference/reference.html) –
Không hoạt động như iOS 7 –
Phương pháp này được kiểm tra và xác minh. Tôi đã sử dụng nó trong mã của tôi.
if (![MFMessageComposeViewController canSendText]) {
UIAlertView *alertV = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device not support SMS \nOr you hadn't login your iMessage" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alertV show];
return;
}
MFMessageComposeViewController *mVC = [[MFMessageComposeViewController alloc] init];
mVC.body = @"jjjj";
mVC.recipients = @[@"00XXXXXXXXXX"];
mVC.messageComposeDelegate = self;
if ([MFMessageComposeViewController canSendAttachments]) {
NSLog(@"ok");
}
[mVC addAttachmentData: UIImageJPEGRepresentation([UIImage imageNamed:@"test.jpg"], 1.0) typeIdentifier:@"public.data" filename:@"image.jpeg"];
[self presentViewController:mVC animated:YES completion:nil];
Bạn có thể sử dụng bất kỳ định dạng jpg và png jpeg nào.
trong mã của tôi nó không bao giờ đi vào nếu ([MFMessageComposeViewController canSendAttachments]) { NSLog (@ "ok"); } Tôi có cần thiết lập bất kỳ cài đặt nào khác không? – Niharika
Tại sao bạn không chia sẻ hình ảnh và văn bản thông qua Share API (chọn tin nhắn, và nếu bạn muốn exluding Facebook, twitter vv ..)
Để có giao diện khác – jgvb
Swift cách. Hoạt động trong iOS11
func shareViaMessage() {
if !MFMessageComposeViewController.canSendText() {
showAlert("Text services are not available")
return
}
let textComposer = MFMessageComposeViewController()
textComposer.messageComposeDelegate = self
textComposer.body = "Try my #app"
if MFMessageComposeViewController.canSendSubject() {
textComposer.subject = "AppName"
}
if MFMessageComposeViewController.canSendAttachments() {
let imageData = UIImageJPEGRepresentation(imageView.image!, 1.0)
textComposer.addAttachmentData(imageData!, typeIdentifier: "image/jpg", filename: "photo.jpg")
}
present(textComposer, animated: true)
}
- 1. Đính kèm hình ảnh trong ứng dụng SMS/MMS gốc trên iPhone
- 2. Flex: TextArea đính kèm Hình ảnh
- 3. Gửi email với tập tin đính kèm bằng ứng dụng email client của
- 4. Gửi hình ảnh trong tin nhắn văn bản trên ios
- 5. đính kèm email trên iphone
- 6. cách đính kèm liên kết url vào hình ảnh?
- 7. Gửi tệp đính kèm iphone qua email theo chương trình
- 8. Nhiều tệp đính kèm qua phpmailer
- 9. iOS: gửi email với tập tin đính kèm thêm một đính kèm (.txt) nộp tự động
- 10. SLComposeViewController với ảnh chụp màn hình nhưng không đính kèm hình ảnh
- 11. Sử dụng tập tin đính kèm duy nhất cho video/hình ảnh trong kẹp giấy
- 12. tập tin đính kèm email phân tích qua mime4j
- 13. Làm cách nào để hiển thị số lượng hình ảnh được đính kèm với bài đăng trên trang tệp đính kèm hình ảnh?
- 14. cách gửi email qua mailx kèm theo tập tin đính kèm
- 15. Thiếu đầu ranh giới ngoại lệ khi đọc tin nhắn với file đính kèm
- 16. Đính kèm hình ảnh để đăng trong Wordpress XMLRPC
- 17. Nhúng ảnh đính kèm vào email HTML
- 18. MFMailComposeViewController Lực lượng thực tế kích thước trên tập tin đính kèm hình ảnh
- 19. Đính kèm chứng chỉ ứng dụng khách với Axis2?
- 20. cách gửi email HTML có hình ảnh đính kèm bên trong với PHP
- 21. Delphi 7: Đính kèm hình ảnh vào Chuột
- 22. Java mail - file đính kèm && hình ảnh inline
- 23. Đính kèm hình ảnh vào phần thân thư trong C#
- 24. tập tin đính kèm Return với $ .ajax gọi
- 25. Cách đính kèm repo của tôi vào ứng dụng heroku
- 26. Hình ảnh SVG trong ứng dụng iPhone
- 27. Android: Làm cách nào để đính kèm hình ảnh tạm thời, được tạo vào email?
- 28. Không thể đính kèm ndk-gdb vào ứng dụng android
- 29. Cách tạo ứng dụng lưu trữ tin nhắn đã gửi và nhận trong iPhone
- 30. C# Chụp màn hình điều khiển .net trong ứng dụng và đính kèm vào Outlook Email
Tạo url Sms và sau đó sử dụng [[UIApplication sharedApplication] openURL: url]; Để gửi hình ảnh, bạn cần phải dán hình ảnh bằng cách sử dụng UIPasteBoard theo cách thủ công. – Jasmit