0

ここに記載されているように、アプリを起動しようとしています: Launch custom android application from android browser
I've created intent-filterin my manifest:

<activity
            android:name=".ui.BaseActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop" 
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize">
            <intent-filter>
                 <data android:scheme="http" android:host="somesite.com"/>
                 <action android:name="android.intent.action.VIEW"/>
                 <category android:name="android.intent.category.BROWSABLE" />
                 <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

しかし、ストックブラウザ「somesite.com」と入力すると、アプリを起動する代わりに「somesite.com」が読み込まれます。どうしたの?
PS: このhttps://stackoverflow.com/a/13019256/1548085は役に立たない

4

3 に答える 3

2

ブラウザーにリンクを入力してもインテントは開始されません。ブラウザーはその URL を参照するだけです。インテント メカニズムは、ブラウザでリンクをたどる (つまり、クリックする) 場合にのみ使用されます。

于 2013-05-08T16:33:32.610 に答える
0

この例では、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>
于 2014-04-10T06:55:10.377 に答える
-1

「somesite.com」だけを入力する場合は、「http://somesite.com/」を入力する必要があります。私もその問題に気付きました。

于 2013-02-06T00:32:07.280 に答える