Базовая настройка приложения Ionic 4

ionic start open-social-media blank

Приведенная выше команда создает проект с «open-social-media».

Что мы можем ожидать от этой сессии?

Мы создадим набор кнопок с иконками социальных сетей. Когда пользователь щелкает значок определенной социальной сети (Facebook, Instagram, YouTube и Twitter), он проверяет, установлено ли соответствующее родное приложение или нет.

Если он установлен, он будет переходить на страницу или профиль пользователя соответствующего собственного приложения, в противном случае он будет переходить на страницу или профиль пользователя браузера.

Шаг 1:

Создание значков социальных сетей HTML с событием и методом клика (который будет определен на шаге 4)

<ion-header>
  <ion-toolbar color="primary">
    <div class="ion-text-center">
      <ion-title>
        Open Social Media
      </ion-title>
    </div>
  </ion-toolbar>
</ion-header>
<ion-content padding>
  <div>
    <div class="horizontal">
      <p class="font-size-16">Like, Follow and Share</p>
    </div>
    <div class="horizontal">
      <div class="social-icons" (click)="socialMedia('FACEBOOK')">
        <ion-icon name="logo-facebook"></ion-icon>
      </div>
      <div class="social-icons" (click)="socialMedia('INSTAGRAM')">
        <ion-icon name="logo-instagram"></ion-icon>
      </div>
      <div class="social-icons" (click)="socialMedia('TWITTER')">
        <ion-icon name="logo-twitter"></ion-icon>
      </div>
<div class="social-icons" (click)="socialMedia('YOUTUBE')">
        <ion-icon name="logo-youtube"></ion-icon>
      </div>
    </div>
  </div>
</ion-content>

Шаг 2

Добавление необходимого CSS для компонента

.social-icons {
  font-size: 30px;
}
.horizontal {
  display: flex;
  justify-content: space-evenly;
}
.font-size-16 {
    font-size: 16px;
}

Шаг 3

Добавьте необходимые зависимости или плагины

Плагин доступности приложений

ionic cordova plugin add cordova-plugin-appavailability
npm install @ionic-native/app-availability

В плагине браузера приложений

ionic cordova plugin add cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser

Шаг 4

Добавляем нашу логику TypeScript в component.ts

import { Platform } from '@ionic/angular';
import { Component } from '@angular/core';
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
import { AppAvailability } from '@ionic-native/app-availability/ngx';
@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
  providers: [InAppBrowser, AppAvailability]
})
export class HomePage {
  constructor(
    private platform: Platform,
    private inAppBrowser: InAppBrowser,
    private appAvailability: AppAvailability
  ) { }
  socialMedia(type) {
    switch (type) {
      case 'FACEBOOK': {
        this.openFacebook('saichoclate', 'https://www.facebook.com/saichoclate/');
        break;
      }
      case 'INSTAGRAM': {
        this.openInstagram('sai_kumar_korthivada_skk')
        break;
      }
      case 'TWITTER': {
        this.openTwitter('korthivadasai');
        break;
      }
    }
  }
  openTwitter(name) {
    let app;
    if (this.platform.is('ios')) {
      app = 'twitter://';
    } else if (this.platform.is('android')) {
      app = 'com.twitter.android';
    } else {
      this.openInApp('https://twitter.com/' + name);
      return;
    }
    this.appAvailability.check(app)
      .then((res) => {
        const data = 'twitter://user?screen_name=' + name;
        this.openInApp(data);
      }
      ).catch(err => {
        this.openInApp('https://twitter.com/' + name);
});
  }
  openFacebook(name, url) {
    let app;
    if (this.platform.is('ios')) {
      app = 'fb://';
    } else if (this.platform.is('android')) {
      app = 'com.facebook.katana';
    } else {
      this.openInApp('https://www.facebook.com/' + name);
      return;
    }
    this.appAvailability.check(app)
      .then(res => {
        const fbUrl = 'fb://facewebmodal/f?href=' + url;
        this.openInApp(fbUrl);
      }
      ).catch(() => {
        this.openInApp('https://www.facebook.com/' + name);
      });
  }
  openInApp(url) {
    this.inAppBrowser.create(url, '_system')
  }
  openInstagram(name) {
    let app;
    if (this.platform.is('ios')) {
      app = 'instagram://';
    } else if (this.platform.is('android')) {
      app = 'com.instagram.android';
    } else {
      this.openInApp('https://www.instagram.com/' + name);
      return;
    }
    this.appAvailability.check(app)
      .then((res) => {
        this.openInApp('instagram://user?username=' + name);
      }
      ).catch(err => {
        this.openInApp('https://www.instagram.com/' + name);
      });
  }
}

Давайте разберем приведенный выше фрагмент машинописного кода

  1. Импортируйте встроенный в браузер плагин доступности приложения в свой компонент.
  2. Добавьте импортированные классы провайдеров в массив провайдеров компонента.
  3. Добавьте 3 провайдера в конструктор (Platform, InAppBrowser и AppAvailability).
  4. Служба платформы используется для определения используемой платформы, т. е. Android, IOS или веб-браузера.
  5. InAppBrowser используется для открытия предоставленного URL-адреса в нашем телефоне или в браузере на основе URL-адреса.
  6. AppAvailability используется для проверки доступности соответствующего приложения.

Методы и использование

socialMedia(type): этот метод получает свойство «type», когда пользователь нажимает на иконки в HTML. Этот метод решает, какой метод должен быть выполнен на основе действий пользователя.

openFacebook, openTwitter, openInstagram эти методы будут проверять следующее:

  1. Независимо от того, является ли платформа Android или IOS.
  2. Существует ли соответствующее приложение в их родном телефоне или нет. Если соответствующее приложение существует, оно открывает приложение, если нет, оно переходит во встроенный веб-браузер.

Пример демо ниже

Примечание

Здесь каждое приложение для социальных сетей имеет разные имена пакетов на разных платформах. У них разное формирование URL и разные шаблоны открытия страницы или профиля пользователя. Статическое содержимое, определенное выше, даст вам хорошее представление о том, как его нужно настроить.

Мобильное приложение Facebook против Интернета

  1. Когда мы используем имя страницы Facebook для доступа в мобильном приложении Facebook, оно всегда открывает определенный модуль, такой как «Главная», «Обзоры», «Фотографии», но не открывает обзор конкретной страницы. Чтобы открыть обзорную страницу, мы должны открыть ссылку в нашем родном браузере телефона.

Наблюдение. Правая часть изображения – это мобильный браузер (показывает главный модуль всей страницы), тогда как левая часть изображения – мобильное приложение Facebook. Оба представления разные, но оба указывают на одно и то же. Страница и URL.

использованная литература

Чтобы узнать больше о браузере In App, нажмите здесь.

Чтобы узнать больше о доступности приложений, нажмите здесь.