7

そのため、Ionic v3 PWA でnavigator.share()( https://developers.google.com/web/updates/2016/09/navigator-share )を実装しています。

それは機能しますが、修正方法がわからない小さな問題が発生しました: navite 共有セレクターがポップアップし (ユーザーは受信トレイ、gmail、twitter などを選択できます)、ユーザーは Android の戻るボタンを押します。 (出てきたネイティブモーダルを却下する)、関数は約束の応答をトリガーしません。成功ではなく、エラーではありません。

ここでの問題は、navigator.share 関数を呼び出す前にローディング スピナーを表示し、ユーザーがその正確な瞬間に戻るボタンを押した場合、ローディング スピナーを非表示にする関数をトリガーできないことです。

これは、機能を実装するコードの一部です。

public share(title: string, message: string, url: string) {
    // if it's mobile & web (ie: chrome on android)
    if (this.isMobileWeb === true) {
        this.showLoading();
        if ((navigator as any).share) {
            (navigator as any).share({
                title,
                message,
                url,
            })
                .then(() => {
                    console.log('Success share');
                    this.hideLoading();
                })
                .catch((error) => {
                    console.log('Error share', error);
                    this.hideLoading();
                });
        }
        else {
            console.log('navigator.share() not supported.');
            this.hideLoading();
        }
    }
}

この実装では、ネイティブ共有モーダルが表示されたときにユーザーが戻るボタンを押しても、成功またはエラーはスローされません。このコードに何か問題がありますか?

.then()次のように、関数内に別のコールバック関数を追加することも試みました.then(successFn, errorFn)。も呼び出されることはerrorFnありません。

御時間ありがとうございます。-

4

1 に答える 1