Method and apparatus for pushing notification message, device, medium, and program product
By caching undisplayed notification messages locally on the client device and pushing them according to display rules, the problem of low reliability of real-time push channels is solved, enabling reliable display of notification messages and improving user experience.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- BEIJING ZITIAO NETWORK TECH CO LTD
- Filing Date
- 2025-01-15
- Publication Date
- 2026-07-23
Smart Images

Figure CN2025072603_23072026_PF_FP_ABST
Abstract
Description
Methods, apparatus, devices, media, and programs for pushing notification messages. Technical Field
[0001] The exemplary embodiments disclosed herein generally relate to the field of computers, and particularly to methods, apparatus, devices, computer-readable storage media, and computer program products for pushing notification messages. Background Technology
[0002] With the rapid development of mobile internet, the frequency of use of various client devices is increasing, and users' demand for timely information access is also growing. Therefore, there is a need to deliver user-relevant information to users instantly and reliably via client devices. The goal is to provide a solution that can reliably push notification messages to client devices. Summary of the Invention
[0003] In a first aspect of this disclosure, a method for pushing notification messages is provided. The method includes: in response to a triggering of message display, determining whether there are cached notification messages, wherein the cached notification messages have not been displayed within a target display period; in response to determining that there are cached notification messages, determining whether at least one of the cached notification messages satisfies a corresponding display rule; and in response to determining that at least one notification message satisfies the corresponding display rule, performing a push notification to at least one notification message.
[0004] In a second aspect of this disclosure, an apparatus for pushing notification messages is provided. The apparatus includes: a first determining module configured to, in response to a triggering of message display, determine whether there are cached notification messages, wherein the cached notification messages have not been displayed within a target display period; a second determining module configured to, in response to determining the existence of cached notification messages, determine whether at least one of the cached notification messages satisfies a corresponding display rule; and an execution module configured to, in response to determining that at least one notification message satisfies the corresponding display rule, execute the push of at least one notification message.
[0005] In a third aspect of this disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit. When executed by the at least one processing unit, the instructions cause the device to perform the method of the first aspect.
[0006] In a fourth aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program that can be executed by a processor to implement the method of the first aspect.
[0007] In a fifth aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, implements the method according to a first aspect of this disclosure.
[0008] It should be understood that the content described in this content section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0009] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:
[0010] Figure 1 shows a schematic diagram of an example environment in which embodiments of the present disclosure can be implemented;
[0011] Figure 2A shows a flowchart of the registration process for a notification message push service according to a conventional scheme;
[0012] Figure 2B shows a flowchart of the process for pushing notification messages according to a conventional approach;
[0013] Figure 3 shows a flowchart of a process for pushing notification messages according to some embodiments of the present disclosure;
[0014] Figure 4 illustrates a schematic diagram of an example architecture for pushing notification messages according to some embodiments of the present disclosure;
[0015] Figure 5 illustrates a flowchart of an example process for caching notification messages according to some embodiments of the present disclosure;
[0016] Figure 6 shows a flowchart of a process for pushing notification messages according to some embodiments of the present disclosure;
[0017] Figure 7 shows a block diagram of an apparatus for pushing notification messages according to some embodiments of the present disclosure; and
[0018] Figure 8 shows a block diagram of an electronic device capable of implementing one or more embodiments of the present disclosure. Detailed Implementation
[0019] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0020] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.
[0021] In this document, unless explicitly stated otherwise, performing a step in response to A does not mean that the step is performed immediately after A, but may include one or more intermediate steps.
[0022] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition, use, storage or deletion of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0023] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, relevant users should be informed of the type, scope of use, and usage scenarios of the information involved in this disclosure through appropriate means in accordance with relevant laws and regulations, and authorization should be obtained from the relevant users. Among them, relevant users may include any type of rights holder, such as individuals, enterprises, and groups.
[0024] For example, in response to receiving an active request from a user, a prompt message is sent to the relevant user to clearly inform the user that the requested operation will require obtaining and using the user's information, thereby enabling the relevant user to choose whether to provide information to the software or hardware such as the electronic device, application, server, or storage medium that performs the operation of the technical solution disclosed herein based on the prompt message.
[0025] As an optional but non-restrictive implementation, in response to a user's active request, a prompt message can be sent to the user, such as a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide information to the electronic device.
[0026] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0027] Figure 1 illustrates a schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. As shown in Figure 1, the example environment 100 may include a client device 110 and a server device 120. In some embodiments, the client device 110 communicates with the server device 120 to implement various services, including the push of notification messages. In application scenarios involving push notification messages, the server device 120 can generate and provide a service for push notification messages. The server device 120 can be considered as a content producer for push notification messages. The client device 110 can receive and display notification messages provided by the server device 120. In some embodiments, the client device 110 can display notification messages through an interface 130.
[0028] In this example environment 100, the target application 115 is installed on the client device 110. In some embodiments, the notification messages provided by the server device 120 may include notification messages for the target application 115. In this scenario, the server device 120 may correspond to the server of the target application 115. In other embodiments, the notification messages provided by the server device 120 may also include notification messages for the operating system of the client device 110. In this scenario, the server device 120 may correspond to the server of the operating system. Although only a single application is shown in Figure 1, the client device 110 may actually have more applications installed, depending on actual needs.
[0029] In some embodiments, user 140 can view the displayed notification message through interface 130 of client device 110. In some embodiments, user 140 can click on the notification message through interface 130 of client device 110, or interact with the notification message in any other appropriate way.
[0030] In some embodiments, the client device 110 may be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the client device 110 may also support any type of user-facing interface (such as "wearable" circuitry).
[0031] Server-side device 120 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks, and big data and artificial intelligence platforms. Server-side device 130 may include, for example, computing systems / servers, such as mainframes, edge computing nodes, computing devices in cloud environments, etc.
[0032] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.
[0033] As briefly mentioned earlier, in order for users to receive the necessary information on their client devices, notification messages need to be reliably pushed to those devices. This is primarily achieved through a real-time push channel between the server and the client.
[0034] Figure 2A illustrates a flowchart of process 200A for registering with a notification push service according to a conventional real-time push channel scheme. In process 200A, firstly, target application 115' performs device registration with FCM server 210 via a client. Target application 115' can be an example of the target application in the environment of Figure 1. Specifically, the client can call the SDK (Software Development Kit) to perform device registration. Then, FCM (Firebase Cloud Messaging, a cross-platform push messaging service) server 210 can return a token to target application 115' for implementing push messaging. The token can be used to identify target application 115'. Thus, target application 115' obtains the corresponding token from FCM server 210. Next, the client can use the update token interface to send the token to device registration service 220. This completes the registration for the notification push service.
[0035] Figure 2B shows a flowchart of process 200B for pushing notification messages according to a conventional real-time push channel scheme. The push of message notifications implemented by process 200B can be based on the notification message push service registered in process 200A.
[0036] In process 200B, the push content production service 230 can be a service used to generate notification messages to be pushed. The notifications to be pushed can include one or more types, such as first-type notifications, second-type notifications, third-type notifications, fourth-type notifications, and many other types of notifications. Of course, this document does not limit the number of notification message types. For example, a first-type notification may include content recommendation messages pushed to users, such as recommending various types of content that users may be interested in. A second-type notification may include instant messaging (IM) between users. A third-type notification may include interactive content, such as comments, likes, or user follows on published content. A fourth-type notification may include operational content related to the target application 115', such as version upgrades, feature improvements, etc. It should be understood that multiple types of notification messages can also include other types and other content of notification messages, and this is not intended to limit the number of notification message types.
[0037] The push content production service 230 can send notification message push requests to a batch of devices to the notification message push service 240. Upon receiving the request, the notification message push service 240 can send it to the FCM server 210 using a token. Upon receiving the request, the FCM server 210 can display a receipt to the server of the notification message push service 240. Then, the FCM server 210 can use a long-lived connection to send relevant data about the notification message push to the mobile service 250 (a set of applications and services provided to the client's operating system) on the client device 110'.
[0038] After receiving data related to the notification message, the mobile service 250 of client device 110' can wake up the target application 115' at a certain time and forward the notification message to the target application 115'. After receiving the notification message (260), the target application 115' can display the notification message on the interface of client device 110' (270). Client device 110' can receive the user's click on the displayed notification message, and then jump (280) to the target application 115' corresponding to the notification message, and display the relevant content of the notification message in the target application 115'. Thus, the push notification message is realized through the real-time push channel.
[0039] The aforementioned real-time push channel solution for sending notification messages involves a very long process, encompassing multiple nodes and services. Under normal operating conditions, this real-time push notification channel ensures that notification messages are displayed on client devices in a timely manner. However, if any service or link in the process fails, it will affect the entire channel. This results in a low overall delivery rate of notification messages to users. Furthermore, such a real-time push channel relies on third-party services (e.g., push notification services, FCM servers), which are typically difficult to optimize, and in the event of a failure, rapid fault repair is also challenging. This makes it difficult to guarantee that notification messages can be reliably delivered to users.
[0040] In view of this, embodiments of this disclosure propose an improved scheme for pushing notification messages. According to various embodiments of this disclosure, in response to a triggering of message display, it is determined whether there are cached notification messages that have not been displayed within a target display period. In response to determining that there are cached notification messages, it is determined whether at least one of the cached notification messages satisfies a corresponding display rule. In response to determining that at least one notification message satisfies the corresponding display rule, pushing at least one notification message is performed.
[0041] In this way, by caching potentially used notification messages locally on the client in advance, and determining the push of the notification message based on the display rules corresponding to the cached notification message upon detecting a trigger for message display, more notification messages can be reliably displayed to the user, increasing the likelihood of successful message delivery. In some embodiments, the solution proposed in this disclosure can supplement conventional real-time push channels or other channels for pushing notification messages.
[0042] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.
[0043] The following description will continue with reference to the accompanying drawings, which will provide some exemplary embodiments of this disclosure.
[0044] Figure 3 illustrates a flowchart of a process 300 for pushing notification messages according to some embodiments of the present disclosure. For ease of discussion, these embodiments will be described with reference to the environment 100 of Figure 1. These embodiments can be implemented in the client device 110 of Figure 1.
[0045] As shown in Figure 3, in box 310, the client device 110 detects a trigger for message display. If a trigger for message display is detected, in box 320, the client device 110 determines whether a cached notification message exists. The cached notification message can be pre-cached locally on the client device 110, for example, in a local storage device or database. The caching of notification messages locally on the client device 110 will be discussed in detail below with reference to Figure 4. In the embodiments of this disclosure, the cached notification message is not displayed in real time when received by the client device, but is not displayed within a target display period. This target display period can be, for example, one day, half a day, one week, or any other suitable period. It should be understood that the target display period can be set according to actual circumstances and is not limited here.
[0046] If it is determined that no cached notification message exists, client device 110 can return to box 310 and continue detecting the trigger for message display. The following section discusses in detail how client device 110 can detect the trigger for message display.
[0047] Triggering message display refers to the client device 110 being triggered to determine whether to display locally cached notification messages. In some embodiments, if the client device 110 detects that no notification messages have been displayed within a target display period, or that the number of displayed notification messages has not reached a predetermined number, it can determine that a trigger for message display has been detected. For example, if the client device 110 detects that no notification messages have been displayed within one day or other target display periods, or that the number of displayed notification messages has not reached a predetermined number (e.g., 3 or other numbers), it can trigger message display to determine whether to display locally cached notification messages.
[0048] In some embodiments, notification messages from the operating system or an application can also be pushed via a real-time push channel as shown in Figure 2B. However, as discussed above, the reliability of pushing notification messages via a real-time push channel is difficult to guarantee, resulting in lower reliability of notification messages reaching and being displayed on the client device 110. Therefore, it is possible that no notification messages are displayed within the target display period, or that the number of displayed notification messages does not reach the predetermined number. It should be understood that these situations may not only be caused by the real-time push channel, but may also be caused by other channels used to implement message push. Thus, if these situations occur, it means that there may be some push problems with the real-time push channel. In order to continue to display sufficient notification messages to the user, the client device 110 may be triggered to display messages, thereby determining whether to push locally cached notification messages.
[0049] Alternatively or additionally, in some embodiments, if the client device 110 detects that the process corresponding to the target application 115 has been launched, it can also determine that a trigger for message display has been detected. Here, at least one notification message to be displayed to the client device 110 can be associated with the target application 115. For example, at least one notification message can be a notification message for the target application 115. As an example, the process corresponding to the target application 115 can be a process launched separately in the background of the client device 110 to trigger message display. As another example, such a process can also be a triggering process launched based on the detection that no notification message has been displayed within the target display period, or that the number of displayed notification messages has not reached a predetermined number.
[0050] Referring again to Figure 3, in box 330, if it is determined that there are cached notification messages, the client device 110 determines whether at least one of the cached notification messages meets the corresponding display rules. In some embodiments, for each notification message or batch of cached notification messages, a corresponding display rule can be configured. Since notification messages are not displayed immediately after being received by the client device but are cached locally for a period of time, display rules can be configured to ensure that the notification message is still suitable for display to the user after a period of caching.
[0051] In some embodiments, the display rules are at least related to the cache duration of the notification message. As an example, the display rules related to the cache duration can be determined based on the message type of the notification message. For instance, generally speaking, for content that user 140 likes to see, the corresponding notification message, whether displayed on day 1, day 5, or at another time, still belongs to content that matches user 140's preferences. Therefore, for such personalized notification messages, even if they have been cached for a long time, they can still be pushed to user 140. As another example, for news summary content, due to its time-sensitive nature, the corresponding notification message can be set to not be displayed to user 140 after a predetermined cache duration. It should be understood that for different types of notification messages, corresponding display rules related to the cache duration can be set according to the actual situation.
[0052] As another example, the display rules for notification messages can be determined based on corresponding data security requirements. For instance, for some notification messages, an excessively long cache time might render them unsuitable for display to the user from a data security perspective. Therefore, it's possible to set a cache duration beyond a certain threshold before displaying them to the user. It should be understood that different display rules related to data security requirements can be set for different types or content of notification messages.
[0053] In other examples, display rules can also be determined based on other appropriate factors. It should be understood that display rules can be updated. For example, display rules for notification messages can be added, display rules that do not conform to the current situation can be deleted, display rules can be modified, and so on.
[0054] Referring back to Figure 3, if it is determined that none of the cached notification messages meet the corresponding display rules, client device 110 will still return box 310 and continue to detect the trigger for message display. In this case, it can be determined that none of the cached notification messages meet the corresponding display rules based on factors such as cache duration, compliance risk factors, or other appropriate factors.
[0055] If at least one of the cached notification messages is determined to meet the corresponding display rules, in box 340, the client device 110 performs a push notification for at least one notification message. Thus, the client device 110 can push locally cached notification messages that meet the corresponding display rules to the user 140. This ensures that notification messages are always reliably pushed to the user, allowing the user to receive more information of interest, promoting user interaction and effectively improving the user experience.
[0056] In some embodiments, when the client device 110 pushes at least one notification message, it can determine the number of notification messages to be pushed based on the difference between the predetermined number and the number of notification messages already displayed within the target display period. For example, assuming that three (or other predetermined number) notification messages are set to be displayed within the target display period (e.g., 1 day or other display period), if only two (or other numbers less than the predetermined number) notification messages are displayed during this period, it can be determined that one (or other number less than the predetermined number) notification message needs to be pushed to the user 140 using locally cached notification messages. Thus, when the number of displayed notification messages is less than the predetermined number, the difference in the number of notification messages can be made up using locally cached notification messages.
[0057] The foregoing described an embodiment of how locally cached notification messages are displayed. Figure 4 shows a flowchart of an example process 400 for caching notification messages according to some embodiments of this disclosure. Process 400 can be implemented in the environment 100 of Figure 1. At least a portion of the notification messages cached by process 400 can be used to implement the notification message push of process 300 of Figure 3.
[0058] As shown in Figure 4, in box 410, client device 110 can detect that target application 115 is running. Then, client device 110 can detect whether target application 115 is in an idle state. The idle state of target application 115 may include a state in which target application 115 has no user interaction activity for a period of time and the system resource usage is relatively low, or other idle states.
[0059] Further, at block 420, client device 110 can determine that target application 115 is in an idle state. At block 430, in some embodiments, if target application 115 is in an idle state, client device 110 can send a message request to server device 120 to request a notification message and the corresponding display rules. Thus, client device 110 can receive the notification message and the corresponding display rules from server device 120. Furthermore, at block 440, client device 110 can cache the received notification message and the corresponding display rules. As an example, the notification message and the corresponding display rules received by client device 110 can be cached in local storage device 450. Local storage device 450 can be any suitable device of client device 110 capable of caching or storing data. As another example, the notification message and the corresponding display rules received by client device 110 can be cached in a database accessible to client device 110.
[0060] Therefore, requests for and caching of notification messages can be performed when the application is idle, avoiding resource consumption while the user is using the target application and reducing the impact on the user experience.
[0061] Figure 5 illustrates a schematic diagram of an example architecture 500 for pushing notification messages according to some embodiments of the present disclosure. Architecture 500 can be implemented in the environment 100 of Figure 1. Architecture 500 can be shown as the architecture adopted by process 300 of Figure 3 and process 400 of Figure 4.
[0062] As shown in Figure 5, in some embodiments, if the client device 110 receives a first notification message via a real-time push channel, it can push the first notification message to display it (510). The first notification message may be generated by the push content production service 230' of the server device 120. The push content production service 230' may be at least one service in the server device 120 used to generate notification messages. Here, the notification message received by the client device 110 via the real-time push channel will be pushed in a timely manner.
[0063] However, as discussed above, in a real-time push channel, the reliability of the notification message being displayed to the client device 110 is affected because the channel involves multiple service entities and the reliability of these service entities cannot be guaranteed. Therefore, embodiments of this disclosure send a message request from the client device 110 to the push content production service 230' to request at least a notification message. After receiving the message request, the push content production service 230' can directly send the corresponding notification message to the client device 110 to cache the received notification message in the local storage device 450. Then, after detecting a trigger for message display, the client device 110 pushes the previously cached notification message that meets the display rules to the user 140.
[0064] It should be noted that the notification messages discussed in this article can be application-level notification messages or operating system-level notification messages. Server device 120 can be a server device for an application (such as target application 115) or an operating system server device. It should be understood that both application server devices and operating system server devices can include push content production service 230'. When client device 110 sends a message request to server device 120, if the corresponding notification message is an operating system-level notification message, client device 110 can also determine the operating system's idle time period and send the message request to the operating system's server device during that idle time period.
[0065] According to embodiments of this disclosure, push notification messages are implemented by utilizing cached notification messages, triggering message display, and display rules for notification messages, which can serve as a supplement to push notification messages through real-time push channels. In some embodiments, the message push scheme proposed in this disclosure can also serve as a supplement to push notification messages through third-party push channels other than real-time push channels.
[0066] In some embodiments, if a first notification message is received from the server device 120 via a real-time push channel, the client device 110 can determine whether the first notification message exists in the cached notification messages. If the first notification message exists in the cached notification messages, the client device 110 can delete the first notification message from the cached notification messages. That is, if the client device 110 has already received a notification message from a regular real-time push channel or other third-party push channels, it needs to perform deduplication on the locally cached notification messages. This can prevent the same notification message from being displayed to the user repeatedly, thereby improving the user experience.
[0067] The embodiments of this disclosure cache potentially used notification messages locally on the client in advance, and upon detecting a trigger for message display, determine the push of the notification message based on the display rules corresponding to the cached notification message. This allows more notification messages to be reliably displayed to the user, increasing the likelihood of successful delivery. The solution proposed in this disclosure can supplement conventional real-time push channels or other channels for pushing notification messages. This allows more notification messages to be reliably displayed to the user, improving the reliability of notification message delivery.
[0068] Figure 6 shows a flowchart of a process 600 for pushing notification messages according to some embodiments of the present disclosure. Process 600 can be implemented at a client device 110. Process 600 will now be described with reference to Figure 1.
[0069] As shown in Figure 6, in box 610, the client device 110, in response to the triggering of message display, determines whether there is a cached notification message, and the cached notification message has not been displayed within the target display period.
[0070] In box 620, in response to determining that there are cached notification messages, the client device 110 determines whether at least one of the cached notification messages meets the corresponding display rules.
[0071] In box 630, in response to determining that at least one notification message meets the corresponding display rule, the client device 110 performs the push of at least one notification message.
[0072] In some embodiments, process 600 further includes: sending a message request to a server device; receiving a notification message and a display rule corresponding to the notification message from the server; and caching the received notification message and the corresponding display rule.
[0073] In some embodiments, sending a message request to a server device includes: sending a message request to a server device in response to the target application being in an idle state.
[0074] In some embodiments, process 600 further includes: determining that a trigger for message display has been detected in response to detecting at least one of the following: no notification message is displayed within the target display period, the number of displayed notification messages has not reached a predetermined number, or the process corresponding to the target application is started, or at least one notification message is associated with the target application.
[0075] In some embodiments, process 600 further includes: in response to receiving a first notification message from a server device via a real-time push channel, determining whether a first notification message exists in a cached notification message; and in response to the existence of a first notification message in a cached notification message, deleting the first notification message from the cached notification message.
[0076] In some embodiments, process 600 further includes: in response to receiving a first notification message via a real-time push channel, performing a push of the first notification message.
[0077] In some embodiments, the display rules are at least related to the cache duration of the notification message.
[0078] Figure 7 shows a schematic structural block diagram of an apparatus 700 for pushing notification messages according to certain embodiments of the present disclosure. The apparatus 700 may be implemented as or included in a client device 110. The various modules / components in the apparatus 700 may be implemented by hardware, software, firmware, or any combination thereof.
[0079] As shown in Figure 7, the device 700 includes a first determining module 710, configured to determine whether there is a cached notification message in response to a trigger for message display, wherein the cached notification message has not been displayed within the target display period; a second determining module 720, configured to determine whether at least one of the cached notification messages satisfies the corresponding display rules in response to the determination that there are cached notification messages; and an execution module 730, configured to execute the push of at least one notification message in response to the determination that at least one notification message satisfies the corresponding display rules.
[0080] In some embodiments, the apparatus 700 further includes a request module configured to send a message request to a server device; receive a notification message and a display rule corresponding to the notification message from the server; and cache the received notification message and the corresponding display rule.
[0081] In some embodiments, the device 700 is further configured to send a message request to the server device in response to the target application being in an idle state.
[0082] In some embodiments, the apparatus 700 further includes a triggering module configured to determine that a trigger for message display has been detected in response to detecting at least one of the following: no notification message is displayed within a target display period, the number of displayed notification messages has not reached a predetermined number, or a process corresponding to the target application is started, or at least one notification message is associated with the target application.
[0083] In some embodiments, the apparatus 700 further includes a deletion module configured to, in response to receiving a first notification message from a server device via a real-time push channel, determine whether a first notification message exists in a cached set of notification messages; and, in response to the existence of a first notification message in a cached set of notification messages, delete the first notification message from the cached set of notification messages.
[0084] In some embodiments, the device 700 further includes a real-time receiving module configured to push the first notification message in response to receiving the first notification message via a real-time push channel.
[0085] In some embodiments, the display rules are at least related to the cache duration of the notification message.
[0086] The units and / or modules included in device 700 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units and / or modules can be implemented using software and / or firmware, such as machine-executable instructions stored on a storage medium. In addition to or as an alternative to machine-executable instructions, some or all of the units and / or modules in device 700 can be implemented at least partially by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.
[0087] Figure 8 shows a block diagram illustrating an electronic device 800 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device 800 shown in Figure 8 is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. The electronic device 800 shown in Figure 8 can be used to implement the client device 110 of Figure 1 or the apparatus 700 of Figure 7.
[0088] As shown in Figure 8, the electronic device 800 is in the form of a general-purpose electronic device. Components of the electronic device 800 may include, but are not limited to, one or more processors or processing units 810, memory 820, storage devices 830, one or more communication units 840, one or more input devices 850, and one or more output devices 860. The processing unit 810 may be a physical or virtual processor and is capable of performing various processes according to programs stored in the memory 820. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of the electronic device 800.
[0089] Electronic device 800 typically includes multiple computer storage media. Such media can be any accessible media that is accessible to electronic device 800, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 820 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage device 830 can be a removable or non-removable medium and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data (e.g., training data for training) and can be accessed within electronic device 800.
[0090] Electronic device 800 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG8, disk drives for reading or writing from removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading or writing from removable, non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. Memory 820 may include computer program product 825 having one or more program modules configured to perform various methods or actions of various embodiments of the present disclosure.
[0091] The communication unit 840 enables communication with other electronic devices via a communication medium. Additionally, the functionality of the components of the electronic device 800 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the electronic device 800 can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network node.
[0092] Input device 850 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 860 can be one or more output devices, such as a monitor, speaker, printer, etc. Electronic device 800 can also communicate with one or more external devices (not shown) via communication unit 840 as needed. These external devices include storage devices, display devices, etc., and can communicate with one or more devices that enable user interaction with electronic device 800, or with any device that enables electronic device 800 to communicate with one or more other electronic devices (e.g., network card, modem, etc.). Such communication can be performed via input / output (I / O) interface (not shown).
[0093] According to an exemplary implementation of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. According to an exemplary implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.
[0094] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0095] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processing unit of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0096] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0097] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0098] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.
Claims
1. A method for pushing notification messages, comprising: In response to a trigger for message display, determine whether there is a cached notification message that has not been displayed within the target display period; In response to determining that the cached notification message exists, determine whether at least one of the cached notification messages satisfies the corresponding display rules; as well as In response to determining that the at least one notification message satisfies the corresponding display rules, the push of the at least one notification message is executed.
2. The method according to claim 1, further comprising: Send a message request to the server device; Receive notification messages and corresponding display rules from the server device; as well as Cache received notification messages and their corresponding display rules.
3. The method according to claim 2, wherein sending a message request to the server device includes: In response to the target application being in an idle state, a message request is sent to the server device.
4. The method according to claim 1, further comprising: A trigger for message display is determined to be detected in response to at least one of the following: No notification messages were displayed during the target display period. The number of notification messages displayed has not reached the predetermined number, or The process corresponding to the target application is started, and the at least one notification message is associated with the target application.
5. The method according to claim 1, further comprising: In response to receiving the first notification message from the server device via a real-time push channel, determine whether the first notification message exists in the cached notification messages; as well as In response to the presence of the first notification message in the cached notification messages, the first notification message is deleted from the cached notification messages.
6. The method according to claim 5, further comprising: In response to receiving the first notification message via the real-time push channel, the first notification message is pushed.
7. The method of claim 1, wherein the display rule is at least related to the cache duration of the notification message.
8. An apparatus for pushing notification messages, comprising: The first determining module is configured to determine, in response to a triggering of message display, whether there is a cached notification message that has not been displayed within the target display period. The second determining module is configured to, in response to determining the existence of the cached notification messages, determine whether at least one of the cached notification messages satisfies the corresponding display rules. as well as The execution module is configured to push the at least one notification message in response to determining that the at least one notification message meets the corresponding display rules.
9. An electronic device, comprising: At least one processing unit; as well as At least one memory, coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, which, when executed by the at least one processing unit, cause the electronic device to perform the method according to any one of claims 1 to 7.
10. A computer-readable storage medium having a computer program stored thereon, the computer program being executable by a processor to implement the method according to any one of claims 1 to 7.
11. A computer program product tangibly stored in a computer storage medium and comprising computer-executable instructions that, when executed by a device, cause the device to perform the method according to any one of claims 1 to 7.