【问题标题】:how to create android intent filter without hyperlink如何创建没有超链接的android意图过滤器
【发布时间】:2013-10-13 11:19:04
【问题描述】:

我尝试将意图过滤器设置为http://myapp.com,如果存在这种类型的超链接,它会很好地工作。另一个是 myapp:// ,我只能通过从网页重定向来使其工作。例如。 localhost/redirect.jsp 重定向到 myapp://etc

我还能如何以及在哪里使用 myapp://etc ?特别是在whatsapp、line等消息应用中。在android中,myapp://etc是不可点击的。

【问题讨论】:

  • whatsapp 不知道 myapp://etc 的存在,因此该行不可点击。它不被认为是“标准”协议。你应该继续使用myapp.com
  • 它不仅仅是whatsapp。其他应用程序也无法识别 myapp://etc 这是 android 的行为,因为 iOS 能够这样做,例如。 Whatsapp://

标签: android intentfilter whatsapp


【解决方案1】:

使用这个:

TextView v = new TextView(this);
v.setTextSize(24);
v.setMovementMethod(LinkMovementMethod.getInstance());

SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append("this is my ");
int start = ssb.length();
ssb.append("app");
int end = ssb.length();
ssb.append(" just use it!");

URLSpan span = new URLSpan("myapp://some.host");
ssb.setSpan(span, start, end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
v.setText(ssb);

setContentView(v);

或使用 Linkify.addLinks() 方法之一添加您的 myapp://etc 链接

清单中的活动声明:

<activity android:name=".MyAppActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="myapp"/>
    </intent-filter>
</activity>

【讨论】:

  • 您好,这是在我的应用中使用,而不是在其他应用中使用?
  • 适用于您的应用,但适用于任何使用您的 myapp:// 方案创建 URLSpans 的应用
  • 这不是解决方案。其他应用无法识别未标准化的自定义协议。
  • 因为 Linkify 不识别自定义方案,您必须使用 addLinks 与方案和模式参数
猜你喜欢
  • 2012-02-22
  • 2017-01-17
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
相关资源
最近更新 更多