2012-07-10 43 views
0

我見過一個名爲「Glympse」的應用程序。在這個應用程序短信發送沒有用戶交互,這是不可能的iPhone。我在設備日誌中顯示「Glympse」應用程序調用mfmessagecontroller。發送短信無需用戶交互iPhone

Jul 10 16:24:13 unknown Glympse[3004] <Warning>: GlympseAppDelegate::sendViaSMSWithMessage:toRecipient:withDelegate: 
Jul 10 16:24:13 unknown Glympse[3004] <Warning>: 0 
Jul 10 16:24:13 unknown Glympse[3004] <Warning>: presentModalViewController 
Jul 10 16:24:14 unknown Glympse[3004] <Warning>: messageComposeViewController:didFinishWithResult: 
Jul 10 16:24:14 unknown CommCenter[57] <Notice>: queuing sms message with id 584 
Jul 10 16:24:14 unknown SpringBoard[52] <Error>: mms: queued messageId 584 

在我的應用程序中,我也需要那麼所以我如何實現呢?

在此先感謝。

+0

在提出問題之前,請使用[搜索功能](http://stackoverflow.com/search?q=sms+without+user+iphone),因爲這已被問過很多次。 – 2012-07-10 10:34:42

+0

@NickBull我檢查了所有問題,但我沒有得到任何解決方案。我在應用程序中展示這是我問了一個問題。並感謝您的指導 – ios 2012-07-10 10:56:47

+0

我的回答對你有幫助嗎? – 2012-07-16 11:51:06

回答

8

With MFMessageComposerViewController不可能在沒有用戶交互的情況下發送。

你必須採取短信網關,並實現自己的發送短信的方式,而不僅僅是可能的。就像你必須創建webservice並接受來自iPhone的參數,如電話號碼和消息,而不是使用SMS網關發送短信。

希望這會有所幫助。

+0

在該應用程序的作品。所以請安裝並參閱 – ios 2012-07-10 10:24:59

+0

對於目前的SDK,這是不可能的。如果你覺得他們已經這樣做了,他們可能已經創建了這樣的界面,即設計了他們自己的消息編輯器並進行相應處理但對於MFMessageComposerViewController,根本不可能。 – 2012-07-10 10:28:32

+0

Janak Nirmal,你對此不太正確。在iOS 4和5中,可以顯示控制器,找到「發送」按鈕並以編程方式按下它。很少有應用程序正在利用此隱藏功能。蘋果從未禁止任何人這樣做。在iOS 6中,他們改變了MFMessageComposerViewController的底層設計(它現在基於「遠程視圖」的概念),它可以防止上述破解工作。但在過去.. – 2013-07-04 00:02:22

2

Glympse不發送短信,它會向其服務器發起網絡請求。服務器有一個SMS引擎,它將相應的SMS發送到請求中的參數。否則就不可能實現這個功能。

1

更新:以下答案僅適用於iOS 5.1及更早版本。它看起來像蘋果已經阻止了iOS 6的行爲,事實上,Glympse已經恢復了他們以前的用戶交互文本發送策略。

與Glympse一起玩確認ios在問題中描述的行爲。雖然Glympse在不能直接從設備發送文本時使用自己的服務器生成SMS消息,但當有能力時,它會直接從設備發送文本(使用iMessage或SMS)。您可以通過發送請求,然後看到生成的短信顯示在您的消息歷史記錄中來驗證此情況。

即使MFMessageComposeViewController看起來打算要求用戶交互,通過Glympse留下的日誌信息十分強烈建議他們使用它,並抑制UI。我試驗,發現它不是太難做一些行爲以同樣的方式:我簡單地取代了MFMessageComposeViewController的視圖(以避免顯示的UI),然後調用後presentViewController我設置一個計時器事件後開火控制器已啓動並正在運行。定時器事件發送的消息給模擬在「發送」按鈕的用戶點擊的控制器。

我不能回答是,這是否遵循了iOS開發者計劃許可協議的條款 - 它可能潛在地「在蘋果規定的方式使用記錄的API」(3.3.1)或一般的衝突「不要干涉蘋果公司試圖提供給用戶的警告「(3.3.14)。 Glympse爲用戶的利益採取這種行爲的優勢 - 它很清楚改善了用戶體驗,並避免未經用戶不知情/同意發送消息。我也想利用這種行爲。但你也可以看到,這種行爲可以通過黑幕應用程序被用來冒充用戶發送垃圾郵件等。如果這成爲普遍的做法,蘋果公司很可能會開始尋找這種行爲,並拒絕使用它的應用程序(甚至Glympse將有拉出行爲)。

0

我發現,要做到這一點的方式存在這裏:https://github.com/0xced/Stealth-Messenger

但是你可以在開發者清楚地說:

不要使用!這東西只用於教育目的,並不是 適合所有的App Store。

底部。但僅限於「教育目的」,您可以查看此信息。