3

WebサイトのSafariプッシュを実装しようとしましたが、問題が発生しました。ボタンをクリックすると、コールバック関数はポップアップウィンドウなしで「拒否」外観。SAFARI 10.0.1でSafariプッシュ要求のアクセス許可が「拒否」を返す

コードは以下example.com/v1/log

file_put_contents ('./files/log.txt', json_encode ($_REQUEST)); 

ためにマッピングされたコントローラ上で実行され、それは '[]' に書き込みます。

私はEl capitan OSのSafari 9でプッシュしようとしましたが、サブスクリプションと配信には問題ありません.Safari 10 & Sierra OSの問題は何もわかりません。

const websitePushID = 'web.com.example'; 
const webServiceUrl = 'https://example.com'; 
var permissionData = {}; 

window.addEventListener('load', function() { 
    webPush.pushButton = $('.js-push-btn') || false; 

    if ('serviceWorker' in navigator) { 
     navigator.serviceWorker.register('/service-worker.js').then(webPush.initialiseState); 
     $('.js-push-btn').on('click', function() { 
      webPush.do(); 
     }); 

    } else { 
     if ('safari' in window && 'pushNotification' in window.safari) { 
      permissionData = window.safari.pushNotification.permission(websitePushID); 
      $('.js-push-btn').on('click', function() { 
       checkRemotePermission(permissionData); 
      }); 
     } 
    } 
}); 

var checkRemotePermission = function (permissionData) { 
    if (permissionData.permission === 'default') { 
     try { 
      console.log('default'); 
      window.safari.pushNotification.requestPermission(
       webServiceUrl, 
       websitePushID, 
       {}, 
       checkRemotePermission 
      ); 
     } catch (e) { 
      console.log(e); 
     } 
    } 
    else if (permissionData.permission === 'denied') { 
     console.log('denied'); 
    } 
    else if (permissionData.permission === 'granted') { 
     console.log('granted'); 
    } 
}; 

DATの書き込み「デフォルト」とあなたがAppleの全世界での署名ファイルに署名する場合には、コンソールログすべてのチェックの

答えて

0

まずに「拒否」の後:ここで

はwebpush.jsコードです16/14/16から義務付けられている。おそらくあなたはパッケージを抽出できないようなエラーを受けているでしょう。通常、フレームワークを使用している場合、ログのエンドポイントにログファイルを送信することを許可しないパーミッションエラーが発生します。それは私の問題でした。私が解決したときに、この2つは、サファリが魅力のようにすべてのデータをプッシュすると思います!最初にログエンドポイントを実装することをお勧めします。エラーがあれば解決します。

関連する問題