【问题标题】:How to pass project number to manifest.json如何将项目编号传递给 manifest.json
【发布时间】:2016-10-31 11:29:40
【问题描述】:

我正在构建一个网络推送 WordPress 插件,我想将项目编号从表单输入字段传递到 manifest.json 文件 它包含在 index.php 中作为

<link rel="manifest" href="/manifest.json">

【问题讨论】:

    标签: web-services push-notification service-worker web-push chrome-gcm


    【解决方案1】:

    免责声明:我是这个插件的作者。 您可以为已经存在的https://github.com/mozilla/wp-web-push 做出贡献,而不是从头开始构建自己的。

    如果您想构建自己的,可以查看该插件的源代码以了解我们是如何实现它的。

    我们构建了一个类来处理它:https://github.com/marco-c/wp-web-app-manifest-generator

    【讨论】:

      【解决方案2】:

      您不能将任何参数传递给manifest.json。提交表单时,您必须将其生成为静态文件。

      这是我们用于Pushpad plugin 的代码:

      if (file_exists ( ABSPATH . 'manifest.json' )) {
        $oldManifestJson = file_get_contents ( ABSPATH . 'manifest.json' );
      } else {
        $oldManifestJson = '{}';
      }
      $data = json_decode ( $oldManifestJson, true );
      
      $data ['gcm_sender_id'] = $settings ['gcm_sender_id'];
      $data ['gcm_user_visible_only'] = true;
      $newManifestJson = json_encode ( $data );
      if ( is_writable ( ABSPATH . 'manifest.json' ) || !file_exists ( ABSPATH . 'manifest.json' ) && is_writable ( ABSPATH ) ) {
        file_put_contents ( ABSPATH . 'manifest.json', $newManifestJson );
      } else {
        // display an error
      }
      

      【讨论】:

      • 顺便说一句,如果您不想从头开始构建并且可以使用 Pushpad 之类的服务,请随时在 Github (github.com/pushpad/pushpad-wordpress) 上 fork 项目并添加您的改进。我也很乐意合并主仓库上的任何拉取请求
      • 但我只想从插件发送通知页面的管理端发送自定义通知
      • 一个建议,使用此代码您无法支持所有可能的 WordPress 配置(许多安装无法直接写入文件)。您可能想使用我在回复中提到的类,或者在 github.com/marco-c/WP_Serve_File 类之上构建自己的清单生成器,或者从 WP_Serve_File 中的代码中汲取灵感。
      猜你喜欢
      • 2019-04-08
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多