有没有一种方法可以启动带有应用程序活动的Web链接,其中该Web链接以特定方式开始和结束?

如果用户单击指向特定网站的Web链接(例如已在Facebook上或通过电子邮件共享的Web链接)并且以网站地址开头但仅以“ story.html”结尾,则我想启动一个活动。因此,例如http://www.storyofmathematics.com/不会打开应用程序,但是http://www.storyofmathematics.com/story.html会打开

最佳答案

这可以通过使用适当的意图过滤器将活动添加到清单中来实现

    <activity
        android:name=".WebActivity"
        android:label="@string/app_name" >
        <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="www.storyofmathematics.com"
                android:scheme="http" />
            <data
                android:host="storyofmathematics.com"
                android:scheme="http" />
        </intent-filter>
    </activity>


然后通过在活动中运行正则表达式

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class WebActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();

        if (intent.getDataString().matches(
                "http:\\/\\/((www.)?)storyofmathematics.com\\/.*story.html")) {
            // is match - do stuff
        } else {
            // is not match - do other stuff
        }
    }
}

07-27 20:50