В настоящее время у меня есть приложение 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')