Как создать ссылку на продукт? - PullRequest
1 голос
/ 15 марта 2019

Я хочу поделиться URL-адресом продукта, названием продукта для какого-либо пользователя, используя приложение или Facebook и т. Д., Когда пользователь нажимает на тот же продукт, в приложении должна быть открыта страница продукта, если приложение установлено.если приложение не установлено, оно должно перейти в магазин воспроизведения. Теперь, как сгенерировать эту разделяемую ссылку, чтобы эта же страница в приложении открывалась, когда пользователь нажимает

Вот мой код

// share on social websites
    public void shareItem(String url) {
        Log.e("image",productimage);
        Picasso.with(getApplicationContext()).load(url).into(new Target() {
            @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                Intent i = new Intent(Intent.ACTION_SEND);
                i.setType("*/*");
                i.putExtra(Intent.EXTRA_STREAM, getLocalBitmapUri(bitmap));
                i.putExtra(Intent.EXTRA_TEXT, name.getText().toString()+ "\n" +productimage);
                startActivity(Intent.createChooser(i, "Share Image"));
            }
            @Override public void onBitmapFailed(Drawable errorDrawable) { }
            @Override public void onPrepareLoad(Drawable placeHolderDrawable) { }
        });
    }
    public Uri getLocalBitmapUri(Bitmap bmp) {
        Uri bmpUri = null;
        try {
            File file =  new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "share_image_" + System.currentTimeMillis() + ".png");
            FileOutputStream out = new FileOutputStream(file);
            bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
            out.close();
            //bmpUri = Uri.fromFile(file);
            bmpUri=FileProvider.getUriForFile(getApplication(),BuildConfig.APPLICATION_ID+".provider",file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bmpUri;
    }

1 Ответ

1 голос
/ 15 марта 2019

Вы должны добавить фильтр намерений в файл манифеста.Фильтр намерений должен содержать следующие элементы и значения атрибутов:

Определить действие намерения ACTION_VIEW, чтобы к фильтру намерений можно было обратиться из Поиска Google.

<action android:name="android.intent.action.VIEW" />

Мы должны включить категорию BROWSABLE вЧтобы быть доступным из веб-браузера.У нас также должна быть категория DEFAULT для ответа на неявные намерения

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

Наконец, мы должны определить один или несколько тегов.Каждый из этих тегов представляет формат URI, который разрешает действие.В следующем примере представлен простой тег данных для Android-приложения test.com.

 <data
        android:host="test.com"
        android:scheme="https" />

Как читать данные из входящих намерений

Когда вы определяете свой фильтр намерений,может обрабатывать определенные URL, система может начать вашу деятельность с помощью этого фильтра намерений.

Intent intent = getIntent();
Uri data = intent.getData();

если вы передадите параметр запроса как test.com?productID=123, вы сможете получить его из

data.getQueryParameter("productID");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...