如何自动从浏览器启动活动?

时间:2015-01-22 03:07:48

标签: android android-activity browser

我的应用中有一项活动。

<activity android:name=".FromWebActivity"
      android:exported="true"
      android:screenOrientation="portrait">
    <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="test"/>
    </intent-filter>
</activity>

我的HTML中名为openNative的函数。

var openNative = function(location) {
var iframeDom = document.createElement('iframe');
    iframeDom.src = location;
    iframeDom.height = 0;
    iframeDom.width = 0;
    document.body.appendChild(iframeDom);
};

openNative("test://account");

这个html中还有一个标签。

<a href="test://account">open my app</a>

当浏览器打开此页面时,某些设备(中兴S291安卓4.3)可以自动启动我的应用程序。其他设备(Nexus 5 android 4.4.4; Nexus 6 android 5.0.1)不能。我必须手动点击标签才能启动我的应用。为什么呢?

当我访问此页面时,我想自动打开我的应用程序。我怎样才能做到这一点?有什么想法吗?

1 个答案:

答案 0 :(得分:-2)

步骤1:创建一个活动,使用

打开您的主要活动
Intent mIntent = new Intent(this, MainActivity.class);
startActivity(mIntent);
finish();

步骤2:声明上面在清单文件中创建的活动

<activity
        android:name="com.OpenMainActivity"
        android:screenOrientation="portrait" >
        <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="test" />
            <data android:host="account" />
        </intent-filter>
    </activity>

随意恢复任何查询。