无法从网址打开我的应用

时间:2014-02-18 16:27:46

标签: android android-intent

当用户点击浏览器中的链接时,我一直在尝试打开我的应用。我试图用scheme来打开我的应用程序。我在Manifest中所做的更改如下所示。

<activity
        android:name="com.test.testapp.TestAppActivity"
        android:label="@string/app_name"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
           <data android:scheme="testscheme" />
           <action android:name="android.intent.action.VIEW" />
           <category android:name="android.intent.category.BROWSABLE" />
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

我还添加了互联网许可。但是,打开像“testscheme:// testID = 1 ”这样的链接不会打开我的应用。我在这里错过了什么吗?我无法在任何地方找到解决方案。请帮忙。

1 个答案:

答案 0 :(得分:0)

我试图重现你的问题但我做不到。这就是我所拥有的:
A 即可。布局非常简单的活动(仅TextView

package com.test.testapp;

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

import com.example.adip.R;

public class TestAppActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.web_layout);
        TextView txtLabel = (TextView) findViewById(R.id.txtLabel);
        Intent startIntent = getIntent();
        Uri data = startIntent.getData();
        if (data == null) {
            txtLabel.setText("No data provided!");
        } else {
            txtLabel.setText(data.toString());
        }
    }
}

B Manifest包含您拥有的内容:

<activity
    android:name="com.test.testapp.TestAppActivity"
    android:exported="true"
    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="testscheme" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</activity>

C。我在本地sample.html网络服务器上发布的Tomcat文件。

<html>
    <body>
        <a href="testscheme://testID=1">Test scheme</a> <br/>
        <a href="http://www.stackoverflow.com">Working link to SO</a>
    </body>
</html>

任何浏览器打开此文件时,这两个链接的工作方式为:

  1. 第一个链接打开TestAppActivity中显示的TextViewtestscheme://testID=1 - 正是我在html中的内容
  2. 第二个链接在同一个浏览器中打开了古老的StackOverflow。
  3. 你必须做错事,这是小的,你看不到它:)。也许你输错了html文件中的链接......

    无论如何,要比较我提供的内容和你拥有的内容。