Cómo agregar text personalizado en lugar de URL en post Deeplink

Estoy integrando Firebase para admitir la function Deeplink en la aplicación. He visto en uno de los ejemplos de pantalla sugeridos (PFA) aquí que podemos agregar nuestro propio text personalizado en lugar de mostrar URL de enlace profundo.

introduzca la descripción de la imagen aquí

He intentado actualizar pero eso no ayudó. ¿Cómo hacer eso? ¿Alguna sugerencia?

Mi conjetura es que está utilizando una UITextView para cuando el usuario ingresa text (en iOS). Aquí está cómo lograr eso en Swift:

 class ViewController: UIViewController { @IBOutlet weak var textView: UITextView! @IBOutlet weak var textField: UITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func buttonPress(_ sender: Any) { let range = textView.selectedRange let linkString = NSMutableAttributedString(string: textView.text) linkString.addAttribute(NSLinkAttributeName, value: textField.text ?? "", range: range) textView.attributedText = linkString } } extension ViewController: UITextViewDelegate { func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange, interaction: UITextItemInteraction) -> Bool { UIApplication.shanetworking.open(URL, options: [:], completionHandler: nil) return false } } 

En Android, encontré un par de respuestas SO que parecen manejar bien el tema:

Realice una vista de text de hyperlink en Android

Desde user370305:

Prueba esto y dime qué pasa …

 TextView textView =(TextView)findViewById(R.id.textView); textView.setClickable(true); textView.setMovementMethod(LinkMovementMethod.getInstance()); String text = "<a href='http://www.google.com'> Google </a>"; textView.setText(Html.fromHtml(text)); 

Pon el enlace html en edittext android

De RobinHood:

Pon tu html en una cadena @

 <string url="link">&lt;a href="http://www.google.com">Google&lt;/a></string> 

establecer cadena para editar text @

 younetworkingittext.setText(Html.fromHtml(getResources().getString(R.string.url))); 

Para hacer clic, establezca LinkMovementMethod con la acción necesaria @

 younetworkingittext.setMovementMethod(LinkMovementMethod.getInstance()); 

Si está intentando lograr esto en HTML, use una label de ancla ( a ):

 <p>Click on this <a href="https://stackoverflow.com/">Link</a></p> 

He hecho lo mismo en una de mis aplicaciones. Por favor, siga el siguiente código.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="@dimen/margin" tools:context="tdsolutions.com.clickabletext.MainActivity"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World this text" /> </LinearLayout> 

Pase su vista de text al método siguiente (setClickableText):

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text = (TextView) findViewById(R.id.text); setClickableText(text); } private void setClickableText(TextView textView) { String text = "this"; // the text you want to mark as a link SpannableString ss = new SpannableString(textView.getText());// full text final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.parseColor("#91ca46"));//link text color ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View textView) { //What ever the code you want when click on text goes here Toast.makeText(MainActivity.this,"you clicked",Toast.LENGTH_LONG).show(); } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); } }; int start = textView.getText().toString().indexOf(text); int length = start + text.length(); ss.setSpan(clickableSpan, start, length, Spanned.SPAN_INCLUSIVE_INCLUSIVE); ss.setSpan(fcs, start, length, Spanned.SPAN_INCLUSIVE_INCLUSIVE); textView.setText(ss); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setHighlightColor(Color.TRANSPARENT); } 

O puede usar el siguiente código:

Agregue la vista de text como se muestra a continuación, cambie los attributes que desee.

  <TextView android:id="@+id/textView" android:layout_centerInParent="true" android:linksClickable="true" android:textColorLink="#00f" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

luego agrega el siguiente código:

 TextView textView = (TextView) findViewById(R.id.textView); Spanned result; String html = "Hi sweetheart go to <a href=\"http://www.google.com\">this</a> link"; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { result = Html.fromHtml(html ,Html.FROM_HTML_MODE_LEGACY); } else { result = Html.fromHtml(html); } textView.setText(result); textView. setMovementMethod(LinkMovementMethod.getInstance()); 

asegúrate de que cuando agregues enlaces, reemplázalos con tags html como lo hice en el ejemplo String html = "Hi sweetheart go to <a href=\"http://www.google.com\">this</a> link";