2017-05-16 6 views
0

私はかなり長い間Texture(以前のAsyncDisplayKit)を使っていましたが、ASTextNodeで簡単に電話番号やリンクをクリックできるようになっていました。HTMLなしのUITextViewで開かれたリンク

私は古いxamarinプロジェクトに切り替えて、同じ機能が必要でした。私はこのための適切かつ簡単な解決策を見つけるのに苦労していて、人々がUIWebViewを使って作業することを提案し、そのようなものを見つけました。

これはちょっと難しいので、私はこの問題を解決しながらいくつかのステップを説明しようとします。

答えて

0
  • 可能なリンクについては、文字列を解析してみてください。私の場合、文字列は です。常に "88002000600 +7999999999 8888800888"のような電話番号ですが、それは簡単なケースですが、 のWebサイトリンク、正規表現による電子メールの解析に問題はありません。
  • が起因した文字列を構成し、この

のように、必要な属性を割り当てる - 次に、あなたのテキストビューにジェスチャー認識を追加し、 を処理する必要があり

//something right here and get your potential links list 
    var attributedContacts = new NSMutableAttributedString (value as string, UIFont.SystemFontOfSize (14), UIColor.White, UIColor.Clear); 
       foreach (var item in numbers) { 
        var nsStringItem = new NSString (item); 
        var nsTelPromptLink = new NSString (string.Format ("telprompt://{0}", item)); 
        var range = attributedContacts.MutableString.LocalizedStandardRangeOfString (nsStringItem); 
        attributedContacts.AddAttribute (new NSString ("TextLinkAttributeName"), nsTelPromptLink, range); 
       } 
       textView.AttributedText = attributedContacts; 
  • すると、次の方法をタップ:

-

だから、それはかなり難解で、追加のチェックが必要ですが、アイデア自体はかなり明確だと思います。 SwiftやObjective-Cのネイティブソリューションに簡単に適用できます。

+0

https://github.com/TextureGroup/Texture/pull/290 –

関連する問題