美文网首页前端文章收集
Android 通过URL scheme 启动App

Android 通过URL scheme 启动App

作者: beforenight | 来源:发表于2017-04-10 17:15 被阅读6159次

    Android 通过URL scheme 启动App


    简述:Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数。


    Step 0:

    关于页面内容格式如下:

    <a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>
    

    各个项目含义如下所示:

    • scheme:判别启动的App。 - 必填项
    • host:适当记述。- 必填项
    • path:传值时必须的key。 - 非必填项
    • query:获取值的Key和Value。 - 非必填项

    Step 1:

    在Android端定义Url启动格式,在AndroidManifest.xml文件中,指定需要进行启动的Activity页面,一般是app启动的主页面。

    示例:

     <application
                android:allowBackup="true"
                android:icon="@mipmap/ic_launcher"
                android:label="@string/app_name"
                android:roundIcon="@mipmap/ic_launcher_round"
                android:supportsRtl="true"
                android:theme="@style/AppTheme">
            <activity
                    android:name=".MainActivity"
                    android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
    
                <!--通过浏览器Url启动app-->
                <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="lolita"
                            android:scheme="night" />
                    <!--<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>-->
                </intent-filter>
            </activity>
        </application>
    

    Step 2:

    定义一个HTML文件 start.html

       <!DOCTYPE html>
        <html>
        
            <head>
                <meta charset="UTF-8">
                <title></title>
            </head>
        
            <body>
                <br/>
                <!--<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>-->
                <a href="night://lolita?name=Tomcat&page=27">打开app</a><br/>
        
        </html>
    

    Step 3:

    如何获取url调整传递过来的数据?

    在Activity中需要取值的地方添加以下代码:

    Intent intent = getIntent();
    if (intent != null)
    {
    String intentAction = intent.getAction();
    if (Intent.ACTION_VIEW.equals(intentAction))
    {
    Uri intentData = intent.getData();
    String name = intentData.getQueryParameter("name");
    String page = intentData.getQueryParameter("page");
    Log.e(TAG, "initIntentData: " + name);
    Log.e(TAG, "initIntentData: " + page);
    

    运行结果:

    输出log

    参考网址:

    1:http://stackoverflow.com/questions/3469908/make-a-link-in-the-android-browser-start-up-my-app/3472228#3472228

    2:http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser

    相关文章

      网友评论

      • fragment1:用app调app 可以这么调吗
      • 上官影嫣_51e2:为什么在安卓的UC浏览器里面调用不起来呢
      • 可乐_JS:我写的为啥掉不起来啊 ,求解
        beforenight:看下网络权限 <uses-permission android:name="android.permission.INTERNET" />
        加上了没

      本文标题: Android 通过URL scheme 启动App

      本文链接:https://www.haomeiwen.com/subject/sxxeattx.html