Home > Back-end >  Window Open ignored on promise
Window Open ignored on promise

Time:08-09

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 });
};
  • Related