HƯỚNG DẪN THÊM TÍNH NĂNG CHIA SẺ CHO ỨNG DỤNG CỦA BẠN Ở bài này mình sẽ hướng dẫn các bạn thêm tính năng chia sẻ cho ứng dụng của chính mình.. Air Drop là câu trả lời của Apple : truy c
Trang 1HƯỚNG DẪN THÊM TÍNH NĂNG CHIA SẺ CHO
ỨNG DỤNG CỦA BẠN
Ở bài này mình sẽ hướng dẫn các bạn thêm tính năng chia sẻ cho ứng dụng của chính mình
Air Drop giúp liệt kê ra danh sách các lựa chọn chia sẻ!
Air Drop là câu trả lời của Apple : truy cập tập tin và chia sẻ dữ liệu.Trước khi ra mắt iOS 7, người dùng cần phải dựa trên các ứng dụng của bên thứ 3 như Bump để chia sẻ tập tin giữa các thiết bị iOS.Trong iOS 7, Apple đã giới thiệu một tính năng mới gọi là Air Drop Nói tóm lại, tính năng cho phép bạn chia sẻ hình ảnh, video, danh bạ, URL, Passbook trôi qua, danh sách những ứng dụng trên App Store, danh sách những
phương tiện truyền thông trên iTunes Store, vị trí trong Maps, vv…
Là một nhà phát triển, sẽ không thể tuyệt vời hơn nếu kết hợp các tính năng chia
sẻ trong ứng dụng của bạn?Vì vậy, người dùng có thể dễ dàng chia sẻ hình ảnh, tập tin văn bản hoặc bất kỳ loại tài liệu một cách dễ dàng với các thiết bị gần đó.Lớp
UIActivityViewController kèm trong iOS 7 SDK giúp các nhà phát triển đơn giản hoá tính năng gọi “danh sách các kiểu chia sẻ dữ liệu như facebook , tinh nhắn , zalo ….” trong ứng dụng của họ.Những gì bạn cần chỉ là đăng ký lớp các đối tượng bạn muốn chia sẻ và hệ thống sẽ xử lý các phần còn lại.Trong hướng dẫn này, chúng ta sẽ chứng minh việc sử dụng UIActivityViewController và xem làm thế nào bạn có thể sử dụng nó
để chia sẻ hình ảnh / tài liệu bằng cách sử dụng Air Drop
Ở bài này mình sẽ hướng dẫn các bạn gọi Air drop!
ứng dụng của mình sẽ thiết kế như sau:
Trang 2
– tableView hiển thị tên ảnh và tên file text
– showViewcontroller chứa WebView để hiển thị ảnh và txt
khi click vào nút chia sẻ Air drop xuất hiện để lựa chọn chia sẻ!
Bài này trọng tâm là AirDrop vì thế mình đã tạo mẫu dự án các bạn tải về tại đây
1 http ://www.mediafire.com/download/ra09bn3fuhfzr8f/Share_2.zip
Trong mẫu dự án của mình gồm!
class TableViewcontroller quản lý màn hình TableViewcontroller đã đăng ký delegate! class showViewController quản lý màn hình showViewController
và thiết kế 2 màn hình kết nối Navigation như hình vẽ! gồm:
TableViewcontroller để tableViewcell kiểu basic
Trang 3
showViewController chứa WebView và một nút bar button item dùng để chia sẻ!
và một tấm ảnh , 1 file text
Các identifine kết nối:
TableViewcell : identifine @”cell”
Trang 4
TableViewcontroller kết nối với showViewController :identifine @”show”
ok dự án mẫu của mình gồm những thành phần như trên!
Đầu tiên chúng ta làm cách nào để hiển thị tên file ảnh và tên file text lên trên tableView
chúng ta phải tạo một mảng lưu tên file ảnh và file text !
1 @implementation TableViewController{
2 NSArray *url;
3 }
4
5 - (void)viewDidLoad {
7 url=@[@ "DevPro-việt-nam.png" ,@ "inforDevpro.txt" ];
8
9 }
load dữ liệu lên tableView các bạn them đoạn mã sau !!! mình sẽ không giải thích thêm
vì đã quá quen thuộc rồi!
1 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
2 return [url count];
3 }
4 - UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
5 UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@ "cell" forIndexPath:indexPath];
6 cell.textLabel.text=url[indexPath.row];
7 return cell;
Trang 58 }
Tiếp theo chúng ta cần gửi dữ liệu từ TableViewcontroller sang
showViewController
ở file showViewController.h ta một biến string lưu tên file gửi sang!!!
1 @property(nonatomic,strong) NSString *urlstring;
TableViewcontroller.m :
chúng ta cần import showViewController.h vào để cho phép nhận dữ liệu ở view nào!
1 #import "showViewController.h"
Ta thêm đoạn mã sau để gửi tên file sang urlstring!
1 - void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
2 if ([segue.identifier isEqualToString:@"show" ]) {
3 NSIndexPath *indexPath=[self.tableViewData indexPathForSelectedRow];
4 showViewController *dest=segue.destinationViewController;
5 dest.urlstring=url[indexPath.row];
6 }
7 }
nếu các bạn đã theo dõi những bài viết của mình sẽ nắm rõ cách gửi dữ liệu qua View này!
Ở đây mình giải thích đơn giản lại như sau: đầu tiên xác định gửi đến Viewcontroller nào tiếp theo cho phép lấy indexpath của từng row!
Tiếp theo cho phép điaauf khiển gửi và cuối cùng nhận dữ liệu vào đâu!ok!
Như thế chúng ta đã gửi dữ liệu thành công!
Chúng ta xử lý thế nào từ tên file có thể hiển thị thông tin lên webView!
Trang 6trong file
showViewController.m
Do WebView load qua request mà request load qua url như vậy chúng ta viết hàm tạo url!
Do gọi file trong source code !nên ta sử dụng mainBundle truyền vào tên file nó sẽ lấy đường dẫn chuẩn trong app!
1 - NSURL*) fileName:(NSString *) urlstring{
2 NSURL *urlFile =[[NSBundle mainBundle]URLForResource:urlstring withExtension:nil];
3 return urlFile;
4 }
trả về url!
do WebView có thể hiện thị bất kỳ file ảnh text nào nên ta xử dụng webView!
nhấn vào nut chia sẻ Bar button item ánh xạ tạo action cho nó để khi click vào nút đó nó
sẽ xuất hiện Air Drop chia sẻ!
ánh xạ webView để loadRequest!
1 @property (weak, nonatomic) IBOutlet UIWebView *webView;
2
3 - (IBAction)share:(id)sender;
Trong ViewDidload: thêm đoạn mã sau!
1 - (void)viewDidLoad {
3 NSURL *urlRequest=[self fileName:self.urlstring];
4 NSURLRequest *request=[[NSURLRequest alloc]initWithURL:urlRequest];
6 }
Đoạn mã truyền vào url chuyển thành request , webView tải về request! và hiển thị trên Web View !!!
như vậy chúng ta đã hiển thị được ảnh, text trên webView!!!
Trang 7
Tuy nhiên chúng ta chưa làm gì với nút chia sẻ!
Trong IOS 7 trở lên Apple cung cấp lớp UIActivityViewController tạo Air Drop giúp việc gọi AirDrop đơn giản!!!
Có một điều tuyệt vời là khi các thiết bị chia sẻ dữ liệu với nhau chúng sẽ tự bắt được tập tin bên kia gửi sang là kiểu định dạng gì để cho phép gọi app hợp lý để mở chúng!
Air drop lúc chọn gửi đi xác định được tập tin gửi là kiểu định dạng gì ở đâu chính vì thế bên nhận rất dễ dàng đọc được!
Air drop chúng ta chỉ cần nói với nó :2 dòng lệnh chúng ta đã có thể gọi Airdrop! hệ thống sẽ tự xử lý hết thật tuyệt vời cho nhà pháp triển!
Trang 81 UIActivityViewController *controller=[[UIActivityViewController alloc] initWithActivityItems:url
applicationActivities:nil];
dòng 1:Khai báo đối tượng UIActivityViewController truyền vào các url tên file cần chia
sẻ lưu trong một mảng url!
dòng2: khai báo một mảng chứa các thuộc tính không muốn chúng hiển thị trong Air drop!!!
1 NSArray *excludedActivitys=[[NSArray alloc] initWithObjects:UIActivityTypePostToFacebook, nil];
2 //loại bỏ type
3 controller.excludedActivityTypes=excludedActivitys;
và cuối cùng ta hiển thị controller đó lên!
Các bạn làm đúng các bước trên nó sẽ trông như thế này!
1 - (IBAction)share:(id)sender {
2 //Lấy url cần chia sẻ
3 NSURL *urlShare=[self fileName:self.urlstring];
4 //loại bỏ type không cho phep share
5 NSArray *url=@[urlShare];
6 UIActivityViewController *controller=[[UIActivityViewController alloc] initWithActivityItems:url
applicationActivities:nil];
7 NSArray *excludedActivitys=[[NSArray alloc] initWithObjects:UIActivityTypePostToFacebook, nil];
8 //loại bỏ type
9 controller.excludedActivityTypes=excludedActivitys;
10 //hiển thị viewcontroller hiện tại
12 }
Chạy và biên dịch thử chúng ta có thể chia sẽ file ảnh hoặc text …
Trang 9
full mã nguồn bài này! link tải!
1 http ://www.mediafire.com/download/7xcfp9o5jfuu176/Share.zip