Проверьте приложение Facebook работает, но Twitter & Instagram нет? - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время у меня есть приложение Ionic, которое открывает веб-сайт внутри InAppBrowser.

Каждый раз, когда вы переходите на другой URL-адрес, он проверяет домен и, если это URL-адрес Facebook, Twitter или Instagram, он будет - 1. Проверить, установлено ли приложение на телефоне. 2. Если это так, откройте URL-адрес.в приложении.

Моя проблема в том, что мой код Facebook работает, однако, Instagram и Twitter не работают, есть идеи?Заранее спасибо.

home.ts

//check if link is for social media
  CheckSocialMediaLinks(url: string){

      //get the domain
        var parser = document.createElement('a');
        parser.href = url;
        var domain = parser.host; 


      if (domain === "m.facebook.com")
      {
          this.OpenFacebook(url);
          this.navCtrl.pop();
      } 
      else if (domain === "instagram.com")
      {
          this.OpenInstagram(url);
          this.navCtrl.pop();
      } 
      else if (domain === "twitter.com")
      {
          this.OpenTwitter(url);
          this.navCtrl.pop();
      }
  }

  OpenFacebook(url: string){
          let app;

            if (this.platform.is('ios')) {
            app = 'fb://';

            } else if (this.platform.is('android')) {
            app = 'com.facebook.katana';
            }

        this.appAvailability.check(app)
        .then(
            (yes: boolean) => window.open("fb://"+url, '_system'), //IF AVALIABLE
            (no: boolean) => window.open("https://"+url, '_system')
        );
    }

    OpenInstagram(url: string){
          let app;

            if (this.platform.is('ios')) {
            app = 'instagram://';

            } else if (this.platform.is('android')) {
            app = 'com.instagram.android';
            }

        this.appAvailability.check(app)
        .then(
        (yes: boolean) => window.open("instagram://"+url, '_system'), //Not working
        (no: boolean) => window.open("https://"+url, '_system')
        );

    }

    OpenTwitter(url: string){
          let app;

            if (this.platform.is('ios')) {
            app = 'twitter://';

            } else if (this.platform.is('android')) {
            app = 'com.twitter.android';
            }

        this.appAvailability.check(app)
        .then(
            (yes: boolean) => window.open("twitter://"+url, '_system'), //Not working
            (no: boolean) => window.open("https://"+url, '_system')
        );
    }

РЕДАКТИРОВАТЬ

Сделал некоторую отладку, все функции выполняются, я обнаружил, что где этоне выполняется или не работает, если приложение для Instagram или Twitter доступно.(Facebook работает нормально)

Я пробовал несколько вариантов, и код мне подходит, есть идеи?

Instagram - следует открыть ссылку внутри приложения:

(yes: boolean) => window.open("instagram://"+url, '_system')

Твиттер должен открыть ссылку внутри приложения:

(yes: boolean) => window.open("twitter://"+url, '_system')

1 Ответ

0 голосов
/ 14 мая 2018

так что я разобрался с проблемой. Twitter и Instagram должны использовать формат.

Instagram:

window.open("instagram://user?username=whateverusername", '_system')

Twitter:

window.open('twitter://user?screen_name=whateverusername', '_system')
...