是否可以建立这样的链接:

<a href="anton://useful_info_for_anton_app">click me!</a>

让我的安东应用启动吗

我知道这适用于Android Market应用程序的市场协议,但类似的事情是否也适用于其他应用程序?

下面是一个将启动Android Market的链接示例:

<a href="market://search?q=pname:com.nytimes.android">click me!</a>

更新: 我接受eldarerathis提供的答案很好,但我只想提一下,我在<intent-filter>标记的子元素的顺序方面遇到了一些问题。我建议您简单地使用该标记中的新子元素制作另一个<intent-filter>,以避免我遇到的问题。例如,我的AndroidManifest.xml看起来是这样的:

<activity android:name=".AntonWorld"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <data android:scheme="anton" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

当前回答

只想通过浏览器打开应用程序?你可以使用下面的代码来实现:

HTML:

<a href="intent:#Intent;action=packageName;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;end">Click here</a>

清单:

<intent-filter>
      <action android:name="packageName" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

这个意图过滤器应该在Launcher Activity中。

如果你想在点击浏览器链接时传递数据,只需引用这个链接。

其他回答

试试我的简单技巧:

        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(url.startsWith("classRegister:")) {                  
                Intent MnRegister = new Intent(getApplicationContext(), register.class); startActivity(MnRegister);
            }               
            view.loadUrl(url);
            return true;
        }

我的HTML链接:

<a href="classRegister:true">Go to register.java</a>

或者你可以为类文件名设置< a href="classRegister:true" > <- "true"值

不过,这个脚本适用于mailto link:)

        if (url.startsWith("mailto:")) {
            String[] blah_email = url.split(":");
            Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
            emailIntent.setType("text/plain");
            emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{blah_email[1]});
            emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, what_ever_you_want_the_subject_to_be)");
            Log.v("NOTICE", "Sending Email to: " + blah_email[1] + " with subject: " + what_ever_you_want_the_subject_to_be);
            startActivity(emailIntent);
        }

我也遇到过这个问题,看到过很多荒谬的页面。我了解到,要让你的应用程序可浏览,改变XML元素的顺序,这个这个:

<activity
    android:name="com.example.MianActivityName"
    android:label="@string/title_activity_launcher">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>                
        <data android:scheme="http" />     
        <!-- or you can use deep linking like  -->               

        <data android:scheme="http" android:host="xyz.abc.com"/>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <category android:name="android.intent.category.DEFAULT"/>

    </intent-filter>
</activity>

这招对我很管用,也许也能帮到你。

只想通过浏览器打开应用程序?你可以使用下面的代码来实现:

HTML:

<a href="intent:#Intent;action=packageName;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;end">Click here</a>

清单:

<intent-filter>
      <action android:name="packageName" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

这个意图过滤器应该在Launcher Activity中。

如果你想在点击浏览器链接时传递数据,只需引用这个链接。

我有一个jQuery插件启动本地应用程序从网页链接:https://github.com/eusonlito/jquery.applink

你可以很容易地使用它:

<script>
$('a[data-applink]').applink();
</script>

<a href="https://facebook.com/me" data-applink="fb://profile">My Facebook Profile</a>

这个方法不会调用消歧对话框,要求你打开应用程序或浏览器。 如果您在舱单中登记以下内容

<manifest package="com.myApp" .. >
  <application ...>
    <activity ...>
      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
          android:host="gallery"
          android:scheme="myApp" />
      </intent-filter>
    </activity>
    ..

例如,在手机上点击电子邮件中的这个url

<a href="intent://gallery?directLink=true#Intent;scheme=myApp;package=com.myApp;end"> 
  Click me 
</a>

然后android会尝试找到一个带有com包的应用程序。myApp响应你的画廊意图,并有一个myApp方案。万一它不能,它会带你去商店,寻找com。myApp,应该是你的app。