そのため、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
ありません。
御時間ありがとうございます。-