从浏览器URL方案启动应用程序

时间:2012-11-30 11:51:42

标签: android android-intent

感谢许多好帖子,我试图使用以下代码从浏览器链接启动我的Android应用程序。请帮我调整清单和href来调用我的应用程序 -

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.afs"
  android:versionCode="1"
  android:versionName="1.1">
  <supports-screens
  android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="false"
    android:resizeable="true"
    android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-sdk android:minSdkVersion="9"></uses-sdk>
<application android:label="@string/app_name" android:icon="@drawable/afs"        android:debuggable="true">
      <activity android:name=".afs"
              android:label="@string/app_name"
              android:configChanges="keyboardHidden|orientation"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
         <intent-filter>
             <data android:scheme="afs.com.afs"/>
             <data android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />
             <category android:name="android.intent.category.BROWSABLE" />
         </intent-filter>    
    </activity>
</application>

HTML代码

<a href="afs.com.afs:75235">Launch Application</a>

1 个答案:

答案 0 :(得分:31)

来自documentation scheme://host:port/pathpathPrefixpathPattern的属性。

您需要更改定义预测方案和主机定义。如果您未指定scheme,则将忽略所有URI属性,并且不会应用这些属性。

您可以使用http URI方案。

    <data android:scheme="http" android:host="afs.com.afs"/>

和HTML

<a href="http://afs.com.afs:75235">Launch Application</a>

或者定义自己的URL方案。

    <data android:scheme="myapp" android:host="afs.com.afs"/>

并以HTML格式

<a href="myapp://afs.com.afs:75235">Launch Application</a>

PS。

改变这个

    <data android:name="android.intent.action.VIEW" />

    <action android:name="android.intent.action.VIEW" />