我打算在我的應用程序中使用ShareKit。我也想打印(AirPrint)。我正在考慮在同一個操作單中添加所有選項(Facebook & Twitter &打印機)。 我有什麼理由不應該這樣做? 我一直在尋找一些關於如何實現這一點的提示,但都是空白的。有一些提示可以從ActionSheet中刪除東西,但不會添加它們。打印機選項不會被視爲「共享」?添加打印選項到ShareKit
回答
將操作添加到ShareKit的過程在「How to Add a New Action to ShareKit」中進行了介紹。本說明假定您已經實現了一個核心的Sharekit功能(例如,您已經實現了ShareKit示例程序)。
您將從ShareKit Template Src文件夾(.m和.h文件)將新的操作模板複製到您的項目中,使用相應的名稱(如「SHKPrint.m/.h」)重命名文件。有一些明顯的變化,比如類名和頭文件。將#import "SHKSharer.h"
添加到頭文件。
將該類添加到SHKSharers.plist
中的動作/服務列表中,如鏈接頁面所述。 (在我看到的行動與服務之間,在這一點上實際上沒有任何區別,並且據我所知,他們也可以毫無問題地歸類在一起,但一種區別是,行爲被推定爲requiresAuthentication
是模板中的方法。)
然後,如文檔所述,熟悉Understanding the share flow。
至少有一個canShare
方法需要被覆蓋,並且它們已經在模板中設置,供您修改和取消註釋。我爲了你的目的想象,你可能想考慮將canShareText作爲一個合適的方法來共享,所以改變那個返回YES。然後,您將能夠使用分配給UISimpleTextPrintFormatter或UIMarkupTextPrintFormatter的printFormatter進行打印(但不是沒有設置UIPrintInteractionController)。 (我不認爲你提到了你想要打印什麼,所以你必須即興創作。)
修改新的共享者類中的sharerTitle
方法,以顯示適當的標題。
此時,您應該能夠運行您的代碼並查看操作表。您的打印操作不會顯示在此頁面上,但如果您單擊更多...按鈕,它應顯示在第二張紙上。
單擊該操作,除了表單將被隱藏,什麼都不會發生。現在您需要添加一些代碼來執行打印。 (您將在稍後看到,如果您選擇再次共享,則新操作已添加到第一個操作表中,這是最近使用的列表)。
我提到假定您已經實施一個核心的ShareKit功能,比如ShareKit示例程序。如果您轉到調用sharekit操作表的方法(在您自己的代碼中,例如響應按下分享按鈕),您將看到一個地方來確定要共享哪種類型的信息 - 例如URL,圖片,文字......這與您要發送共享信息的位置無關 - 打印機,臉譜,推特,...(我認爲這是把馬車放在馬前,而我修改了我自己的實施來修復此),但忽略了暫時,你會希望將其設置是這樣的:
- (void) shareButtonPressed {
SHKItem *item = [SHKItem text:yourSimpleTextOrMarkupText];
// Get the ShareKit action sheet
SHKActionSheet *actionSheet = [SHKActionSheet actionSheetForItem:item];
// Display the action sheet
[actionSheet showInView:self.view];
}
這使車輪進入運動交流無論是在項目對象。item對象包含一個shareType,在這個例子中是SHKShareTypeText,它是一個枚舉類型。
我不會進入將其轉換爲共享結果的機器。我在睡夢中還不知道它,可能會誤導你(如果我還沒有的話)。
當您單擊操作表中的項目時,SHKActionSheet類會執行一些魔術,將新操作類(本例中爲SHKPrint)的字符串名稱轉換爲類,然後使用它來調用類方法分配和初始化同一個類的一個實例。 (我在鍵入的時候這樣做,所以我跳過了關於如何通過「更多...」第二張紙完成的步驟,我將它留給讀者來跟蹤它並瞭解它是如何工作的。)
通過在SHKSharer類中運行share
,然後show
方法的呼叫鏈進行共享。 (有一些關於自動聯合的業務,我不會進入這裏,但我認爲你暫時可以忽略這一點。)這終於落在了你的自定義類(SHKPrint)的send
方法中。看看你的模板文件,它會給你一些指導。
欲瞭解更多關於打印的信息,see this link,這似乎是一個很好的例子,你可以做什麼打印。
我會在這裏停留的原因有兩個。我想我回答了你的問題,如何添加一個操作表。另外,我沒有AirPrint功能在這裏進行測試,所以我不能單獨進行更多的測試。
讓我知道如果您有任何其他問題。
這是一個很好的答案。非常感謝你花時間寫出來。我很肯定你涵蓋了我不清楚的所有細節。再次。謝謝。 – Alan
- 1. 將SBJson framwork + ShareKit/ShareKit添加到同一個XCode項目中
- 2. 如何將Sharekit添加到現有項目
- 3. 將ShareKit添加到項目中的困難
- 4. wxpython打印到選項卡式面板
- 5. 僅通過Chrome打印選擇打印選定的選項
- 6. Node.js:如何將打印作業添加到打印機
- 7. Powershell:將打印機添加到打印服務器
- 8. 將選項添加到選項中
- 9. Journalctl:添加_SYSTEMD_UNIT場到日誌打印
- 10. jqPlot的打印選項
- 11. iPhone中的打印選項
- 12. 添加選項到droplist
- 13. 將選項添加到IKSaveOptions?
- 14. 將選項添加到wp_dropdown_categories
- 15. 將選項添加到Charts.js
- 16. 選擇「無打印機」選項時的打印問題
- 17. 添加Windows打印機
- 18. PowerShell v2添加打印機
- 19. Fancybox - 添加打印功能
- 20. 選項卡打開打印永久顯示「加載」圖標
- 21. 將JavaScript和HTML添加到IFRAME中,並將IFRAME打印到打印機
- 22. 將項目添加到選定項目
- 23. Chrome瀏覽器:在用戶打開選項後添加選項
- 24. JavaFX FXML - 添加選項到選擇框
- 25. 將選項添加到CodeIgniter中選擇
- 26. 將選定的選項添加到Select2
- 27. 打印 - 打印機選擇
- 28. 如何將可選的選擇標準添加到SAP HRFORMS打印程序?
- 29. 將篩選函數添加到篩選器不起作用打印稿
- 30. LongListMultiSelector添加到所選項目添加2項目代替
目前還不清楚這個問題是關於將項目添加到SK的操作表還是關於在iOS中打印。 Btw不,我不會在共享菜單中添加打印選項。 – pt2ph8
現在問題是關於將打印選項添加到SK的操作表。所以我認爲你不會考慮與共享打印在同一聯盟中。我想那會是答案。謝謝。 – Alan
你不必稱之爲「共享」,將其放入共享包中。我認爲把它列入清單非常有意義。 (或者像其他一些已經與sharekit集成的選項一樣有意義。)如果您的問題在一天結束時還沒有得到解答,那麼我會根據我所做的添加操作的一些提示來傳遞。 (首先必須去上班) – Jim