小编Ari*_*Ari的帖子

App在前台时,系统托盘中的FCM通知

当应用程序处于“ 后台”状态时,我可以在系统任务栏中看到通知。

但是,我希望该通知在系统任务栏中可见,即使该应用程序位于Foreground中也是如此

我在Android上尝试了以下方法:

  • 从Firebase控制台发送通知:当应用程序处于后台时,我才能在系统任务栏中看到通知。
  • 发送POST请求来https://fcm.googleapis.com/fcm/send描述这里datanotificationpaylods:同样,只能看到在系统托盘中的通知时,应用程序在背景。

文件提到:

带有通知和数据有效载荷(后台和前台)的消息。在这种情况下,通知将传递到设备的系统托盘,而数据有效载荷将在启动器活动的意图之外传递。

我想念什么?

我正在使用Android和Cordova / Ionic。

cordova firebase ionic-framework firebase-cloud-messaging cordova-plugin-fcm

5
推荐指数
1
解决办法
2649
查看次数

连接分层模块:SystemVerilog中的struct vs interface

在SystemVerilog中,可以通过简单的数据类型,复杂的数据类型(结构,联合等)或接口来连接分层模块.我感兴趣的功能是在一个地方聚合两个模块之间的所有信号,这简化了代码的维护.

例如,在下面的一个更改s_point的定义而不更改m1,m2和top的声明:

 typedef struct {
  logic [7:0] x;
  logic [7:0] y;
} s_point; // named structure


module m1 (output s_point outPoint);
//
endmodule

module m2 (input s_point inPoint);
//
endmodule

module top ();
    s_point point;
    m1 m1_inst (point);
    m2 m2_inst (point);
endmodule
Run Code Online (Sandbox Code Playgroud)

或者,这可以使用接口完成.但是,我相信使用结构更容易,并且它们受到更多CAD工具的支持,并且它们不需要像接口那样被实例化(尽管仍然必须在顶层模块中声明它们).

我的问题是,对于可综合设计,是否只需要聚合信号(即对接口的任务,函数,模型,通用接口,内部总是块等没有兴趣),哪一个更受欢迎?

system-verilog

4
推荐指数
1
解决办法
2万
查看次数

在makefile中设置环境变量

我有这样的makefile:

setup:
  setenv var1 "$(var1)"; \
  setenv var2 "$(var2)";

task1: setup
  source task1.csh

task2: setup
  source task2.csh
Run Code Online (Sandbox Code Playgroud)

我使用这个命令调用makefile:

make var1=value1 var2=value2 task1
Run Code Online (Sandbox Code Playgroud)

我想要环境变量var1var2task1.csh和中可见task2.csh,但除非我将makefile更改为:否则我无法这样做

task1:
  setenv var1 "$(var1)"; \
  setenv var2 "$(var2)"; \
  source task1.csh

task2:
  setenv var1 "$(var1)"; \
  setenv var2 "$(var2)"; \
  source task2.csh
Run Code Online (Sandbox Code Playgroud)

为什么第一种方法不起作用,我该如何解决?

makefile environment-variables gnu-make

4
推荐指数
1
解决办法
1万
查看次数

由于与谷歌gms服务的版本冲突,FCMPlugin构建失败

我正在Windows for Android上使用离子2.当我添加cordova-plugin-fcm插件时,我无法再构建项目了.这是我得到的错误:

BUILD FAILED                                                                                     

Total time: 4.697 secs                                                                           

Error: cmd: Command failed with exit code 1 Error output:                                        
FAILURE: Build failed with an exception.                                                         

* What went wrong:                                                                               
Execution failed for task ':processDebugGoogleServices'.                                         
> Please fix the version conflict either by updating the version of the google-services plugin (i
nformation about the latest version is available at https://bintray.com/android/android-tools/com
.google.gms.google-services/) or updating the version of com.google.android.gms to 9.2.0.        

* Try:                                                                                           
Run with --stacktrace option to get the stack trace. Run …
Run Code Online (Sandbox Code Playgroud)

cordova ionic-framework cordova-plugins ionic2

4
推荐指数
1
解决办法
3614
查看次数

Cordova:数据无效,块必须是字符串或缓冲区,而不是对象

我更新到Ionic 3.5,之后我收到此错误,当我尝试cordova build ios:

Invalid data, chunk must be a string or buffer, not object
Run Code Online (Sandbox Code Playgroud)

没有解释为什么会发生这种错误.我用Cordova 7.0.1和6.5.0尝试了这两个.有趣的是,它适用于Windows机器,但不适用于Mac.我只在Mac上收到错误.我感谢任何见解或帮助.

 ionic info
Run Code Online (Sandbox Code Playgroud)

全球套餐:

@ionic/cli-utils : 1.5.0
Cordova CLI      : 7.0.1
Ionic CLI        : 3.5.0
Run Code Online (Sandbox Code Playgroud)

本地包裹:

@ionic/app-scripts              : 1.3.7
@ionic/cli-plugin-cordova       : 1.4.1
@ionic/cli-plugin-ionic-angular : 1.3.2
Cordova Platforms               : android 6.2.3
Ionic Framework                 : ionic-angular 3.5.3
Run Code Online (Sandbox Code Playgroud)

系统:

Node       : v7.10.0
OS         : Windows 10
Xcode      : not installed
ios-deploy : not installed
ios-sim    : not installed
npm        : 4.6.1
Run Code Online (Sandbox Code Playgroud)

ios cordova cordova-plugins ionic2

4
推荐指数
2
解决办法
5296
查看次数

for 循环 verilog 的更好替代方案

我是verilog的新手。我一直在网上搜索,大多数人建议不要在verilog编码中使用for循环。那么有没有更好的替代方法来替代for循环呢?我现在面临的问题是我需要在一个 case 语句中执行 1 或 2 个 for 循环。我一直在考虑更好的替代方案,但没有想到。如果你们中的任何一个人能够阐明这一点,那就太好了。

我的代码示例:

always @(*)
case (help)
4'd1: for (i=A; i<=20;i=i+B)
       begin temp[i-1]=1; end
4'd2: for (i=A; i<=20;i=i+B)
        begin temp[i-1]=1; B=B+1; end
4'd3: begin
       for (i=A; i<=20;i=i+B)
        begin temp[i-1]=1; B=B+1; end
       for (i=A; i>=1;i=i-B)
        begin temp[i-1]=1; B=B+1; end
      end
default: temp = 0;
Run Code Online (Sandbox Code Playgroud)

for-loop verilog

2
推荐指数
1
解决办法
3070
查看次数

将更多值传递给可观察量的订阅函数

我想使用一个返回一个observable的对象的方法来转换和替换数组中的所有单词.问题是由于结果是异步的,因此在错误的索引处错误地覆盖了结果的值.如果我有一个同步函数,我可以简单地在for循环中调用该函数.在这种情况下我该怎么办?

 for(let word in this.words){
        var i = Object.keys(this.words).indexOf(word);

        this.convertor.get(this.words[i].value).subscribe( (result) => {
            this.words[i].value = result; //The value of i is incorrect
        });
    }
Run Code Online (Sandbox Code Playgroud)

javascript observable typescript

2
推荐指数
1
解决办法
3570
查看次数

你可以为ios设置带有FCM通知的thread-id吗

Firebase FCM 消息支持tagAndroid,这会导致新通知用具有相同标记的旧通知替换前一个通知。有没有办法在ios上做同样的事情?

这个答案建议在数据有效负载中使用线程 ID。但这对我不起作用。

ios firebase google-cloud-messaging firebase-cloud-messaging cordova-plugin-fcm

2
推荐指数
1
解决办法
4938
查看次数

为什么使用 C++17 禁用 std::atomic 的复制省略不起作用?

由于std::atomic复制构造函数被删除,并且由于复制省略,这应该只能使用 C++17 及更高版本进行编译:

std::atomic<int> t_int = 1; 
Run Code Online (Sandbox Code Playgroud)

我预计它不会使用-fno-elide-constructors标志进行编译,但它仍然可以编译:

https://godbolt.org/z/nMvG5vTrK

为什么是这样?

c++ copy-elision c++17

2
推荐指数
1
解决办法
158
查看次数

Firestore选择字段为空的位置

如何选择没有特定字段的所有文档?我有以下结构:

user = {
    firstName: 'blabla',
    lastName: 'bloblo',
    address: {
        city: 'xxxx',
        state: 'xxx'
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试将其与null进行比较,但未成功。

let db = firebase.firestore();  
let querySnapshot = await db
    .collection("users")
    .where("address", "==", null)
    .get();
Run Code Online (Sandbox Code Playgroud)

javascript node.js firebase google-cloud-firestore

1
推荐指数
1
解决办法
4502
查看次数

调用 std::move 而不使用移动构造函数或移动赋值

我们知道 std::move实际上并没有移动任何东西。它只是将左值引用 (&) 转换为右值引用 (&&)。

那么在下面的例子中,复制构造函数是如何调用的呢?如果没有移动构造函数,那么构造使用 std::move() 的对象如何依靠复制构造函数?变量的绑定究竟是如何b发生的?

struct Test {
  // Default constructor
  Test() {
    std::cout << "Constructor is called." << std::endl;
    mValue = 0;
  }
  
  // Copy constructor
  Test(const Test& rhs) {
    std::cout << "Copy Constructor is called." << std::endl;
    mName = rhs.mName;
    mValue = rhs.mValue;
  }
    
  std::string mName;
  int mValue;
};

int main() {
  Test a;
  Test b = std::move(a);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Constructor is called.
Copy Constructor is called.
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics c++11

1
推荐指数
1
解决办法
1285
查看次数