【问题标题】:How to launch an activity from browser in android?如何在android中从浏览器启动活动?
【发布时间】:2011-08-09 14:45:42
【问题描述】:

如何从安卓浏览器启动我的活动?

我有一个链接说,http://a.b.com。当用户在 android 浏览器中输入该 URL 时,我需要打开活动。我的 android 清单中有以下意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
    <data android:scheme="http" android:host="a.b.com"/>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT"/>  
    <category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>

【问题讨论】:

  • 你的&lt;intent-filter&gt;在你的&lt;activity android:name="MyActivity"&gt;里面吗?
  • 我想知道如何用 android:scheme="http" 开始一个活动,我之前试过没有成功!:(
  • 当我尝试这个时,我发现浏览器仍在视图堆栈中,我怎样才能将它从视图堆栈中删除?

标签: android browser intentfilter


【解决方案1】:

【讨论】:

  • 我在互联网上搜索了答案,每个人都说你需要做的就是在清单中给出意图过滤器。但即使 O 给出了它,我也没有得到结果。当我在浏览器中输入 URL 时,它不会启动我的应用程序......
  • 这里也一样。我正在使用与您相同的代码,但它不起作用。我也是,阅读了多篇文章、帖子、线程,他们都说,上面的代码就是我们需要的。你找到答案了吗?
【解决方案2】:

此示例从 android 浏览器启动我的活动并显示前 2 个 GET 婴儿车表单 URL

package com.example.openapp;

import java.util.List;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView txt1 = (TextView) findViewById(R.id.textView1);
        TextView txt2 = (TextView) findViewById(R.id.textView2);
        try{
            Uri data = getIntent().getData();
            if(data != null){
                String scheme = data.getScheme(); 
                String host = data.getHost();
                List<String> params = data.getPathSegments();
                String first = params.get(0); 
                String second = params.get(1);
                txt1.setText(first);
                txt2.setText(second);
            }
        } catch (Exception e){
        }       
    }
}

您需要在清单中添加此内容并将 android 主机替换为您的主机:

     <activity
        android:name="com.example.openapp.MainActivity"
        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="http" android:host="example.com"/>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
        </intent-filter>

    </activity>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2017-01-26
    相关资源
    最近更新 更多