Metro/Windows 8

[윈8] Share Contract 구현 시 공유할 Text 내 줄바꿈은?

길버트리 2013. 11. 25. 10:51

 

(사진출처: chicagogeek @ flickr.com)

 

운영체제의 공유(Share) 버튼을 앱에서 활용하기 위해서

윈도우 8 스토어앱에서는 Share Contract를 구현한다.

 

이 때 DataPackage라는 클래스의 인스턴스를 알차게 꾸려서 다른 앱에 공유해 달라고 던지게 되는데,

줄바꿈이 있는 일반 Text를 공유하는 것이 불가능한 문제가 있다.

 

공유하려고 하는 문자열에 소위 줄바꿈문자로 알고 있는,

캐리지리턴(\r),Line Feed 또는 New Line(\n) 문자가 전혀 적용되지 않는다.

 

전세계 많은 개발자들이 이 문제에 대해서 난감해하고 있고,

궁여지책으로 줄바꿈 문자 대신 "<br/>"을 집어 넣은 뒤, DataPackage.SetText가 아닌

DataPackage.SetHtmlFormat으로 설정해서 사용하고 있지만,

Text만 ShareSource로 받는 ShareTarget앱들에 의해서 공유가

안 된다는 치명적인 단점이 있다. (많은 공유 채널을 잃게 된다.)  

 

이 문제는 8.1에서도 수정되지 않고 있으며,

어이가 없지만 아직은 참고 견뎌야할 시기인 것 같다.

 

    requestData.SetHtmlFormat(HtmlFormatHelper.CreateHtmlFormat("안녕?<br/><br/>이 앱 한번 써 봐!"));

 

 

 

관련 스레드

(MSDN 포럼) http://social.msdn.microsoft.com/Forums/windowsapps/en-US/a630bd88-bf55-41f5-bc9a-bec59a379e5d/how-to-add-new-line-while-sharing-text-in-winrt?forum=winappswithcsharp

(스택오버플로우) http://stackoverflow.com/questions/14041767/how-to-add-new-line-while-sharing-text-in-winrt