【问题标题】:launch application from browser url scheme从浏览器 url 方案启动应用程序
【发布时间】:2016-09-09 12:28:52
【问题描述】:

感谢许多好帖子,我一直在尝试使用以下代码从浏览器链接启动我的 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>

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

    来自documentationscheme://host:port/pathpathPrefixpathPattern的属性。

    您需要更改正确定义方案和主机定义。如果您不指定方案,则所有 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" />
    

    【讨论】:

    • 非常感谢。我会试一试,然后将其标记为已回答。
    • 它成功了,再次感谢您的帮助。我点击它很有帮助。我希望这是我需要做的,以将您的答案视为解决方案。
    • 只是要知道,如果没有安装应用程序怎么办?
    • 通常您应该使用带有有效主机(您可以管理)的 http 或 https 方案。因此,如果用户安装了您的应用程序,它将自动启动它。否则,用户将被转发到浏览器,您可以在其中做任何您想做的事情。例如将他重定向到 Google Play Store 上的应用列表。此外,您可以在用户在该过程中安装应用程序后使用 Referrer 参数将一些附加数据传递给应用程序。 blog.branch.io/…
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2019-01-22
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多