URL方案在Android浏览器中不起作用

时间:2014-03-17 02:07:59

标签: android url-scheme

点击链接时我需要打开我的应用程序。为此,我读到我必须使用URL方案。该链接必须具有myapp://参数形式。

我阅读了有关此主题的每篇文章,但是当我发送一封电子邮件时,我发送了" myapp:// addUser /?id = 22"我从chrome(在我的手机上)打开,它不可点击。

我的清单:

 <activity
            android:name="com.example.SplashActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <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:scheme="myapp" android:host="com.example"/>
            </intent-filter>

        </activity>

我的课程:

公共类SplashActivity扩展了FragmentActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_splash);
    Intent intent = getIntent();

    if (Intent.ACTION_VIEW.equals(intent.getAction())) {
        Uri uri = intent.getData();
        String id = uri.getQueryParameter("id"); 
    }

}

测试代码的邮件内容:

myapp://addUser/?id=22

参考链接:

Make a link in the Android browser start up my app?

How to register some URL namespace (myapp://app.start/) for accessing your program by calling a URL in browser in Android OS?

https://legacy.madewithmarmalade.com/devnet/forum/custom-url-scheme-primarily-android-3

更新

我认为问题是邮件正文,但我不知道如何测试它。

2 个答案:

答案 0 :(得分:3)

在你的清单中

    <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="myapp" android:host="com.example"/>
    </intent-filter>

你定义了android:host =&#34; com.example&#34;,所以你应该修改链接URL:

myapp://addUser/?id=22       //error
myapp://com.example/?id=22   //correct

然后它可以工作!!

答案 1 :(得分:1)

我在这里做了一个测试,在清单文件中我刚删除了“android:host”参数,留下了这个:

<action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="myapp" />
</intent-filter>

并在此处打开了一个网址myapp://testing,我将其放在一个简单的HTML文件上,仅供尝试。