【问题标题】:Start activity from HTML从 HTML 开始活动
【发布时间】:2017-04-05 20:41:10
【问题描述】:

我想从我的 Android 应用程序中的 HTML 页面调用活动。 我会在里面放什么

<a href="TestActivity.java">Test  Activity</a>

【问题讨论】:

标签: android html


【解决方案1】:

使用 &lt;intent-filter&gt;&lt;data&gt; 元素。把这个放在你的&lt;activity&gt; 里面你的AndroidManifest.xml

<intent-filter>
    <data android:scheme="my.special.scheme" />
    <action android:name="android.intent.action.VIEW" />
</intent-filter>

然后,在您的网络应用程序中,您可以放置​​如下链接:

<a href="my.special.scheme://other/parameters/here">

当用户点击链接时,您的应用将自动启动(因为它可能是唯一可以处理 my.special.scheme:// 类型 URI 的应用)。唯一的缺点是,如果用户没有安装应用程序,他们会收到错误消息。

【讨论】:

  • 谢谢你的回答,所以“my.special.scheme”是方案的名称,但我不明白“其他”“参数”和“这里”
  • 你可以忽略它们。这些是您可以在必要时为您的活动提供的可选参数(例如,单击链接的用户的用户名,或您希望 Android 应用接收的其他数据)
【解决方案2】:

我认为最好的方法是通过 webviewclient 覆盖 URL -> shouldOverrideUrlLoading

override fun shouldOverrideUrlLoading(view: WebView ? , request : WebResourceRequest ? ): Boolean {
  val url: String = request ? .url.toString()
  if ((Uri.parse(url).getHost().contains("myactivity"))) {
      val myIntent = Intent(context, MainActivity::class.java)
      context.startActivity(myIntent)
      return true
  }
  return false
}

HTML:&lt;a href="http://myactivity"&gt;LINK&lt;/a&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2015-06-14
    相关资源
    最近更新 更多