I'm trying to redirect a user to twitter if they choose to. For that I use window.open but it just ignores that instruction. It works fine on other pages but in this function it's just not working. Any suggestions?
answerQuestion() {
if (!this.isAnswerValid()) {
this.presentToast('Answer must be between 1 and 140 characters')
return
}
this.loading.present()
this.questionsService.answerQuestion(this.question, this.answerText, this.imageURL)
.then(res => {
if (res) {
if (this.twitter) {
let q = this.question.question
if (q.length > 100) {
q = q.substring(0, 101)
}
let a = this.answerText
if (a.length > 100) {
a = a.substring(0, 101)
}
const url = 'https://nonicapp.web.app/user/' this.auth.user?.username
const tweet = q " - " a " "
window.open('https://twitter.com/intent/tweet?text=' tweet '&hashtags=nonic&url=' url, '_system')
}
this.router.navigateByUrl('/inbox', { replaceUrl: true });
} else {
this.presentToast('Something went wrong, please try again.')
}
})
.catch(err => {
console.warn(err)
this.presentToast('Something went wrong, please try again.')
})
.finally(() => {
this.loading.dismiss()
})
}
CodePudding user response:
I also had some problems with window.open
, so i started using Browser capacitor plugin
It's quite simple
import { Browser } from '@capacitor/browser';
...
async openUrl(url) {
await Browser.open({ url: url });
};