Non-transitory computer-readable recording medium storing computer-readable instructions for terminal device for displaying notification information, terminal device for displaying notification information, and method for controlling terminal device for displaying notification information

A terminal device may receive notification information from a notification server and selectively display one screen among a plurality of screens on a display. The terminal device may, in a case where a predetermined condition is satisfied and a first screen among the plurality of screens is displayed, display the notification information on the first screen. The terminal device may, in a case where the predetermined condition is satisfied and a second screen among the plurality of screens is displayed, not display the notification information on the second screen, and in a case where the predetermined condition is not satisfied, not display the notification information.

REFERENCE TO RELATED APPLICATIONS

This application claims priority from Japanese Patent Application No. 2021-212904 filed on Dec. 27, 2021. The entire content of the priority application is incorporated herein by reference.

BACKGROUND ART

A communication system including a cellphone, a printer and a push notification server is known. The cellphone sends acquisition request information for a push notification ID to the server, receives the push notification ID from the push notification server and sends the push notification ID to the printer. The printer sends the push notification ID to the push notification server. When the push notification server receives the push notification ID from the printer, the push notification server sends the push notification information to the cellphone. When the cellphone receives the push notification information from the push notification server, the cellphone displays a notification image.

DESCRIPTION

The present disclosure provides a technique which can enhance user convenience.

The disclosure discloses a non-transitory computer-readable recording medium storing computer-readable instructions for a terminal device. The terminal device may comprise: a processor: and a display. The computer-readable instructions, when executed by the processor, may cause the terminal device to: receive notification information from a notification server; selectively display one screen among a plurality of screens on the display; and in a case where a predetermined condition is satisfied and a first screen among the plurality of screens is displayed, display the notification information on the first screen; in a case where the predetermined condition is satisfied and a second screen among the plurality of screens is displayed, not display the notification information on the second screen; and in a case where the predetermined condition is not satisfied, not display the notification information.

According to the above configuration, the terminal device receives the notification information from the server. The terminal device selectively displays one of the plurality of screens. When the predetermined condition is satisfied and the first screen among the plurality of screens is displayed, the terminal device displays the notification information on the first screen. When the predetermined condition is satisfied and the second screen among the plurality of screens is displayed, the terminal device does not display the notification information on the second screen. When the predetermined condition is not satisfied, the terminal device does not display the notification information. As described above, depending on the screen displayed on the display of the terminal device, whether to display the notification information can be changed. Accordingly, user convenience can be enhanced.

A computer-readable recording medium storing the above computer-readable instructions, a terminal device implemented by the computer-readable instructions and a method for controlling the above terminal device are also novel and useful. A communication system comprising the above terminal device and the notification server is also novel and useful.

(Configuration of Communication System2;FIG.1)

As illustrated inFIG.1, a communication system2includes a plurality of MFPs10A,10B, a terminal device100, a notification server200, a service providing server300and a service management server400. The MFPs10A,10B and the terminal device100are connected to Local Area Network (LAN)4. The MFPs10A,10B and the terminal device100are configured to communicate with each other via the LAN4. The LAN4is connected to the Internet6. The MFPs10A,10B, the terminal device100, the notification server200, the service providing server300and the service management server400are connected to the Internet6. The MFPs10A,10B, the terminal device100, the notification server200, the service providing server300and the service management server400are configured to communicate with each other via the Internet6.

The MFPs10A,10B are peripheral devices configured to execute a print function and a scan function (i.e., peripheral devices of a PC, etc.). The MFP10A has a device name “DV1” and a model name “MN1”. The MFP10B has a device name “DV2” and a model name “MN2”. The device name is a name given by an administrator of the MFPs to each of the MFPs10A,10B. The Model name is a name representing a model of each MFP. The MFPs10A,10B are manufactured by the same vendor. Hereafter, the MFP10A and the MFP10B may collectively be referred to as “MFP(s)10”.

The terminal device100is a portable terminal device such as a cell phone (e.g., a smartphone), a PDA or a tablet PC. The terminal device100includes an operation unit112, a display114, a communication interface116and a controller130. Hereafter, the interface will be referred to as “I/F”.

The operation unit112is for example a touch screen. The operation unit112is configured to accept various instructions. The display114displays various kinds of information. The display114may be a panel or a display device. The communication I/F116is connected to the LAN4.

The controller130includes a CPU132and a memory134. The CPU132executes various processes in accordance with an Operating System (OS) program136(hereafter simply be referred to as “OS136”) stored in the memory134. The memory134further includes an MFP application138(hereafter simply be referred to as “app138”), a receipt information table140, a device table142, a notification list144, a prohibited screen list146, a consumable notification flag148, and a service notification flag150. The app138is a program to cause the MFPs10A,10B to execute the print function and the scan function. The notification list144is a list of notification information to be displayed. The consumable notification flag148indicates a value that is either “ON” indicating that a pull notification screen related to a consumable is allowed to pop up or “OFF” indicating that the pull notification screen related to a consumable is prohibited to pop up. The service notification flag150indicates a value that is either “ON” indicating that a pull notification screen related to a service provided by the service providing server300is allowed to pop up or “OFF” indicating that the pull notification screen related to this service is prohibited to pop up. The consumable notification flag148and the service notification flag150can be set by a user.

The notification server200is provided on the Internet6by a provider different from the vendor of the MFP10. In a modification, the notification server200may be provided on the Internet6by this vendor. In another modification, the vendor of the MFP10may use an environment provided by an external cloud computing service without preparing its own hardware for the notification server200. In this case, the vendor of the MFP10may implement the notification server200by preparing a program (i.e., a software) for the notification server200and introducing it to the above environment. The notification server200is a server configured to provide push notification information including push notification screen data and pull notification information including pull notification screen data. The pull notification information is data sent from the notification server200to the terminal device100in response to a pull notification information request for requesting the notification server200to send the pull notification information being sent from the terminal device100to the notification server200. The push notification information is data automatically sent from the notification server200to the terminal device100without the push notification information request for requesting the notification server200to send the push notification information being sent from the terminal device100to the notification server200. The push notification information and the pull notification information are registered in the notification server200in response to the vendor providing the notification server200being requested to do so by the vendor of the MFP10, or the like. The notification server200includes a memory230. The memory230stores the notification information table238.

(Configurations of Service Providing Server300and Service Management server400)

The service providing server300and the service management server400are provided on the Internet6by the vendor of the MFP10. In a modification, the service providing server300and the service management server400may be provided on the Internet6by a provider different from this vendor. In another modification, the vendor of the MFP10may use an environment provided by an external cloud computing service without preparing its own hardware for the service providing server300and the service management server400. In this case, the vendor of the MFP10may implement the service providing server300and the service management server400by preparing a program (i.e., a software) for the service providing server300and the service management server400and introducing it to the above environment.

The service providing server300is a server for providing a service related to the MFP10. The service providing server300provides a remote print service and a flat-rate service. In a modification, the service providing server300may further provide a push scan service and the like. The remote print service is a service for sending a print instruction to the MFP10via the service providing server300from outside home or office. The flat-rate service is a service of charging predetermined fees when the number of sheets printed in a predetermined period (e.g., one month) is equal to or less than the contractual number of print sheets (e.g., 1000 sheets). This service charges a flat-rate fee as above and also an additional fee that is dependent on the number of printed sheets exceeding the contractual number of printed sheets when the number of sheets printed in the predetermined period exceeds the contractual number of printed sheets (hereafter this service may be referred to as “flat-rate service”). The flat-rate service includes an automatic ordering service of automatically ordering a new cartridge when a remaining amount of ink in the cartridge attached to the MFP10is equal to or less than a predetermined remaining amount. The service providing server300includes a memory330. A user table338is stored in the memory330.

The service management server400is a server for managing support information of the remote print service and the flat-rate service. The service management server400includes a memory430. A service table438is stored in the memory430. In the service table438, a model name, country information (e.g., “JP”, “US”), first support information and second support information are stored in association with each other. The first support information indicates a value that is either “ON” indicating the remote print service is supported or “OFF” indicating that the remote print service is not supported. The second support information indicates a value that is either “ON” indicating that the flat-rate service is supported or “OFF” indicating that the flat-rate service is not supported.

Next, with reference toFIG.2, contents of the receipt information table140and the device table142in the terminal device100, the notification information table238in the notification server200, and the user table338in the service providing server300will be described.

The notification information table238in the notification server200is a table for managing pull notification information (e.g., PL1to PL3). The pull notification information includes a notification ID for identifying the pull notification information, type information, a timing condition and pull notification scree data corresponding to a pull notification screen. The type information indicates one of “consumable” indicating that the pull notification screen is a screen related to a consumable and “service” indicating that the pull notification screen is a screen related to a service. The timing condition is information indicating a timing at which the pull notification screen is to pop up. In the present embodiment, date-and-time information (e.g., “Jan. 1, 2022 10:00”) is registered as the timing condition. In a modification, period information (e.g., “Jan. 1, 2022 10:00 to Jan. 10, 2022 10:00”) indicating a period for which the pull notification screen can pop up may be registered as the timing condition. The pull notification information may further include a first registration condition, a first support condition, a second support condition, and a consumable condition. The respective conditions are information to limit a target screen on which the pull notification screen is pop-up displayed. The first registration condition is information indicating a condition to change whether to pop up the pull notification screen or not depending on whether the MFP10is registered in the remote print service. The first registration condition includes one of “registered” indicating that the pull notification is pop-up displayed when the MFP10is already registered to the remote print service and “not registered” indicating that the pull notification screen is pop-up displayed when the MFP10is not registered to the remote print service. The first support condition is information indicating a condition to change whether to pop up the pull notification screen depending on whether the MFP10registered in the app138supports the remote print service. The first support condition includes “ON” indicating that the pull notification screen is pop-up displayed when the remote print service is supported. The second support condition is information indicating a condition to change whether to pop up the pull notification screen depending on whether the MFP10registered in the app138supports the flat-rate service. The second support condition includes “ON” indicating that the pull notification screen is pop-up displayed when the flat-rate service is supported. The consumable condition is information indicating a condition to change whether to pop up the pull notification screen depending on the status of a consumable (in the present embodiment, a cartridge) attached to the MFP10registered in the app138. The consumable condition includes “remaining amount≤threshold” indicating that the pull notification screen is pop-up displayed when the remaining amount of the cartridge is equal to or lower than a threshold (e.g., “30”).

The receipt information table140in the terminal device100is a table to manage pop-up display of the pull notification information received from the notification server200. In the receipt information table140, the pull notification information (e.g., PL1to PL3) and display information are stored in association with each other. The display information indicates one of “displayed” indicating that the pull notification screen corresponding to the display information has already been pop-up displayed and “not yet displayed” indicating that this notification screen has not been pop-up displayed yet.

The device table142in the terminal device100is a table for managing information related to the MFP10registered in the app138. In the device table142, a device ID, a model name, first registration information, second registration information, first support information and second support information are stored in association with each other. The first registration information indicates one of “registered” indicating that registration for using the remote print service is completed and “not registered” indicating that registration for using the remote print service is not completed. The second registration information indicates one of “Registered” indicating that registration for using the flat-rate service is completed and “Not registered” indicating that registration for using the flat-rate service is not completed.

The user table338in the service providing server300is a table for managing information related to the user. In the user table338, a user name for identifying the user, the device ID, the first registration information and the second registration information are stored in association with each other. The user ID is registered when the user subscribes to the remote print service or the flat-rate service.

With reference toFIG.3, a prohibited screen list146in the terminal device100will be described. The prohibited screen list146is a list of screens on which pop-up display of the push notification screen or the pull notification screen is prohibited (hereafter the screens may be referred to as “prohibited screen”). In the present embodiment, screens related to a print instruction (e.g., a print preview screen, a print setting screen and a print executing screen), screens related to a scan instruction (e.g., a scan setting screen and scan executing screen), screens for editing image data (e.g., print image data, scan image data) (e.g., print image edit screen and scan image edit screen) and screens for establishing a wireless connection with an external device (e.g., a WFD setting screen and Wi-Fi set up screen) are stored in the prohibited screen list146. The WFD setting screen is a screen for establishing a Wi-Fi Direct (registered trademark, WFD) connection between the MFP10and the terminal device100. The Wi-Fi set up screen is a screen for establishing a Wi-Fi connection between the MFP(s)10and AP(s) (not illustrated).

A registration process will be described with reference toFIG.4andFIG.5. The registration process is a process for registering the MFP10A in the app138. Hereafter, all the communication executed between the terminal device100and other devices (MFP10, the notification server200, the service providing server300and the service management server400) are executed via the communication I/F116of the terminal device100. Accordingly, the recitation “via the communication I/F116” will be omitted. Further, hereafter when the process executed by the CPU132of the terminal device100in accordance with the OS136or the app138is explained, the OS136or app138will be described as a subject of the processes.

When the OS136of the terminal device100accepts an operation to activate the app138in T10, the OS136supplies an activation instruction to the app138in T12. The app138is activated in response to acquiring the activation instruction from the OS136. Next, the app138displays the home screen600on the display114. Specifically, the app138supplies a display instruction for displaying the home screen600to the OS136and the OS136displays the home screen600on the display114. In other words, the app138displays the home screen600on the display114via the OS136. Hereafter, the recitation “via the OS136” in the cases where the app138instructs to display a screen on the display114will be omitted. As illustrated inFIG.5, the home screen600includes a device button500, a print button502, a scan button504and a setting button506. The setting button506is a button for displaying an app setting screen620(seeFIG.10) to be described later. On the device button500, a device name (e.g., “DV1”, “DV2”) of an MFP registered as an MFP which is to execute a print function or a scan function, or information “not selected” indicating that an MFP which is to execute a printing function or a scan function is not registered is displayed. In the present process, the information “not selected” indicating that an MFP which is to execute a printing function or a scan function is not selected is displayed on the device button500.

When the app138accepts selection of the device button500in T22ofFIG.4, the app138broadcasts a search signal in T24. Specifically, the app138supplies, to the OS136, a sending instruction for causing the OS136to send the search signal and the OS136broadcasts the search signal. In other words, the app138broadcasts the search signal via the OS136. Hereafter, the recitation “via the OS136” in the cases in which the app138sends a signal to an external device (e.g., the MFP10A) will be omitted. The search signal is a signal for requiring each of one or more peripheral devices (e.g., MFPs10A,10B) connected to the LAN4to send a response signal including a device ID of the peripheral device. The app138receives a response including the device ID “DV1” from the MFP10A in T26A and receives a response including the device ID “DV2” from the MFP10B in T26B. Specifically, the OS136receives the response including the device ID “DV1” from the MFP10A and the app138acquires the response including the device ID “DV1” from the OS136. In other words, the app138receives the response from the MFP10A via the OS136. Hereafter, the recitation “via the OS136” in the cases in which the app138receives a signal from an external device (e.g., the MFP10A) will be omitted. Next, the app138displays a device selection screen602on the display114in T30. As illustrated inFIG.5, the device selection screen602includes a first device selection button510including the device ID “DV1”, a second device selection button including the device ID “DV2” and a cancel button514.

When the app138accepts selection of the first device selection button510(i.e., the device ID “DV1”) in T32ofFIG.4, the app138sends a device information request to the MFP10A having the device ID “DV1” in T34. The device information request is a signal requesting for sending of device information including the model name of the MFP10, functions which the MFP10can execute, remaining amount information indicating a remaining amount of a cartridge attached to the MFP10, the first registration information and the second registration information. In T36, the app138receives the device information including the model name “MN1”, the print function, the scan function, the remaining amount information “90”, the first registration information “not registered” and the second registration information “not registered” from the MFP10A.

In T40, the app138sends, to the service management server400, a support information request including the country information “JP” indicating that a country where the MFP10A is set up is Japan and the model name “MN1”. The support information request is a signal requesting for sending of first support information and second support information associated with the country information and the model name in the request.

When the service management server400receives the support information request from the terminal device100in T40, the service management server400identifies, in the service table438, the first support information “ON” and the second support information “ON” associated with the model name “MN1” and the country information “JP” in the request. Then, in T42, the service management server400sends support information including the first support information “ON” and the second support information “ON” to the terminal device100.

When the app138receives the support information from the service management server400in T42, the app138stores the received device ID “DV1” (see T26A), the received model name “MN1” (see T36), the received first registration information “not registered” (see T36), the received second registration information “not registered” (see T36), the received first support information “ON” (see T42) and the received second support information “ON” (see T42) in the device table142in association with each other in T44. Specifically, the app138supplies an instruction to store the respective information (the device ID “DV1”, the model name “MN1”, the first registration information “not registered”, the second registration information “not registered”, the first support information “ON” and the second support information “ON”) to the OS136and the OS136stores the information in the device table142. In other words, the app138stores the respective information in the device table142via the OS136. Hereafter, the recitation “via the OS136” in the cases in which the app138stores information in the memory134will be omitted. Thereafter, the app138periodically (e.g., every 24 hours) sends the support information request to the service management server400. In other words, the app138repeatedly sends the support information request to the service management server400.

Next, the app138sends the pull notification information request to the notification server200in T50. The pull notification information request is a signal requesting for sending of the pull notification information which the notification server200stores. The app138receives the pull notification information from the notification server200in T52and stores the pull notification information in T54. Specifically, the app138stores the received pull notification information and the display information “not yet displayed” in the receipt information table140in association with each other. Then, the app138displays the home screen604on the display114in T60. As illustrated inFIG.5, the home screen604is the same as the home screen600except that the device ID “DV1” is displayed on the device button500and includes a notification button508. The notification button508is a button for displaying a notification list screen including a list of the pull notification information in the receipt information table140. When T60ends, the registration process ends. Consequently, the user can use the terminal device100to cause the MFP10A to execute a print function and a scan function. Thereafter, the app138periodically (e.g., every 12 hours) receives the device information from the MFP10A.

Next, with reference toFIG.6, the push notification process executed by the app138will be described. When the push notification information is received from the notification server200, the app138starts the process ofFIG.6.

In S10, the app138determines whether the state of the app138is a background state or not. The background state is a state in which the app138is activated but a screen corresponding to the app138is not displayed on the display114. Hereafter, the state in which the app138is activated and the screen corresponding to the app138is displayed on the display114(e.g., the state ofFIG.5) will be referred to as a foreground state. The app138proceeds to S20when the state of the app138is the background state (YES in S10), while the app138proceeds to S30when the state of the app138is not the background state (NO in S10).

In S20, the app138stores the received push notification information in the notification list144. When the process of S20ends, the app138ends the process ofFIG.6.

In S30, the app138supplies a notification instruction to the OS136. The notification instruction is a signal to instruct to pop up the push notification screen corresponding to the received push notification information. When the notification instruction is acquired from the app138, the OS136displays the push notification screen corresponding to the acquired push notification information as a pop-up on the display114. Then, when the OS136accepts selection of the push notification screen, the OS136supplies a foreground transition instruction to the app138. The foreground transition instruction is an instruction to cause the state of the app138to transition from the background state to the foreground state, and is also an instruction for causing the app138to display a predetermined screen designated by the received push notification information (e.g., remote print service introduction screen626(seeFIG.10)). The predetermined screen is a screen corresponding to screen data which the app138stores in advance.

In S32, the app138acquires the foreground transition instruction from the OS138and in S34, the app138determines if the screen to be displayed on the display114when the state of the app138transitions from the background state to the foreground state is the prohibited screen. When the app138transitions from the background state to the foreground state, the app138displays a screen which is last-displayed in the previous foreground state (hereafter the screen may be referred to as “previous screen”) on the display114. Thus, the app138determines whether the previous screen is the prohibited screen. When the previous screen is not the prohibited screen (NO in S34), the app138proceeds to S36. On the other hand, when the previous screen is the prohibited screen (YES in S34), the app138ends the process ofFIG.6.

In S36, the app138causes the state of the app138to transition from the background state to the foreground state and displays the predetermined screen instead of the previous screen on the display114. When S36ends, the app138ends the process ofFIG.6.

Next, with reference toFIG.7, the pull notification process executed by the app138will be described. When the app138is activated or the state of the app138transitions from the background state to the foreground state after the registration process (seeFIG.4) has been completed, the app138starts the process ofFIG.7.

In S110, the app138monitors a predetermined time (e.g., 24 hours) having elapsed since the pull notification information was previously received from the notification server200. When the predetermined time has elapsed since the pull notification information was previously received from the notification server200, the app138determines YES in S110and proceeds to S112.

The app138sends the pull notification information request to the notification server200in S112and receives the pull notification information from the notification server200in S114. Next, in S116, the app138stores the received pull notification information and the display information “not yet displayed” in association with each other in the receipt information table140. When S116ends, the app138proceeds to S140.

At the same time as the monitoring in S110, the app138determines if the screen displayed on the display114has been changed in S120. When the app138determines that the screen displayed on the display114has been changed, the app138determines YES in S120and proceeds to S140.

Further, at the same time as the monitoring of S110and S120, the app138determines whether the app138has accepted an operation to change either the consumable notification flag148or the service notification flag150(hereafter this operation may be referred to as “notification flag change operation”) in S130. When the app138accepts the notification flag change operation, the app138determines YES in S130and proceeds to S140.

In S140, the app138executes a pull notification display process (seeFIG.8). The pull notification display process is a process to determine whether to pop up the pull notification screen on the display114. When the process of S140ends, the app138returns to S10.

Next, with reference toFIG.8, the pull notification display process executed in S140ofFIG.7will be described. In S210, the app138identifies one piece of pull notification information associated with the display information “not yet displayed” in the receipt information table140as target pull notification information.

In S212, the app138determines whether a filter condition is satisfied by using the target pull notification information. The app138proceeds to S214when the filter condition is satisfied (YES in S212), while the app138proceeds to S220when the filter condition is not satisfied (NO in S212). Hereafter, the process of determining whether the filter condition is satisfied (hereafter the process may be referred to as “filter condition process”) will be described. First, the app138identifies the type information in the target pull notification information (“consumable” or “service”). Then, the app138determines whether the notification flag corresponding to the identified type information (the consumable notification flag148or the service notification flag150) is “ON” or not. When the notification flag corresponding to the identified type information is “OFF”, the app138determines that the filter condition is not satisfied (NO in S212). On the other hand, when the notification flag corresponding to the identified type information is “ON”, the app138continues the filter condition process. Next, the app138determines whether the target pull notification information includes the first registration condition or not. When the target pull notification information includes the first registration condition, the app138determines whether the first registration condition and the first registration information of the selected MFP10in the device table142match or not. When the first registration condition and the first registration information do not match, the app138determines that the filter condition is not satisfied (NO in S212). On the other hand, when the first registration condition and the first registration information match, the app138continues the filter condition process. Next, the app138determines whether the target pull notification information includes the first support condition or not. When the target pull notification information includes the first support condition, the app138determines whether the first support information of the selected MFP10in the device table142is “ON” or not. When the first support information is “OFF”, the app138determines that the filter condition is not satisfied since the first support condition is not satisfied (NO in S212). On the other hand, when the first support information is “ON”, the app138determines that the first support condition is satisfied and continues the filter condition process. When the target pull notification information does not include the first support condition as well, the app138continues the filter condition process. Next, the app138determines whether the target pull notification includes the second support condition. When the target pull notification information includes the second support condition, the app138determines whether the second support information of the selected MFP in the device table142is “ON” or not. When the second support information is “OFF”, the app138determines that the filter condition is not satisfied since the second support condition is not satisfied (NO in S212). On the other hand, when the second support information is “ON”, the app138determines that the second support condition is satisfied and continues the filter condition process. When the target pull notification information does not include the second support condition as well, the app138continues the filter condition process. Then, the app138determines whether the target pull notification information includes the consumable condition or not. When the target pull notification information includes the consumable condition, the app138determines whether the remaining amount indicated by the remaining amount information of the selected MFP10stored in the memory134is equal to or lower than a threshold in the consumable condition. When the remaining amount is greater than the threshold, the app138determines that the filter condition is not satisfied since the consumable condition is not satisfied (NO in S212). On the other hand, when the remaining amount is equal to or lower than the threshold, the app138determines that the consumable support condition is satisfied and determines that the filter condition is satisfied. When the target pull notification information does not include the consumable condition as well, the app138determines that the filter condition is satisfied. As described above, when the notification flag corresponding to the type information included in the target pull notification is “ON” and when all the conditions (except the timing condition) included in the target pull notification information are satisfied, the app138determines that the filter condition is satisfied (YES in S212).

In S214, the app138uses the target pull notification information to determine whether the timing condition is satisfied or not. The app138acquires date-and-time information included in the timing condition and determines whether the current date and time is after the date and time indicated by the acquired date-and-time information (hereafter the date and time may be referred to as “notification date and time”). When the current day and time is after the notification day and time, the app138determines that the timing condition is satisfied (YES in S214) and proceeds to S216, while when the current day and time is before the notification day and time, the app138determines that the timing condition is not satisfied (NO in S214) and proceeds to S220.

In S216, the app138adds the target pull notification information in the notification list144.

In S220, the app138determines whether the processes of S210to S216(hereafter the processes may be referred to as “notification check process”) have been executed on all the pull notification information associated with the display information “not yet displayed” in the receipt information table140. When the app138determines that the notification check process has been executed on all the pull notification information (YES in S220), the app138proceeds to S222while when the app138determines that the notification check process is not performed on one or moref pull notification information (NO in S220), the app138returns to S210. In other words, the app138repeats the notification check process until the notification check on all the pull notification information associated with the display information “not yet displayed” in the receipt information table140is completed.

In S222, the app138determines whether the notification list144is empty or not. When the notification list144is empty (YES in S222), the app138ends the process ofFIG.8. On the other hand, when the notification list144is not empty (NO in S222), the app138proceeds to S230.

In S230, the app138determines whether the screen displayed on the display114is the prohibited screen or not. In S230after YES in S120ofFIG.7, the app138determines whether the changed screen is the prohibited screen or not. When the screen displayed on the display114is the prohibited screen (YES in S230), the app138ends the process ofFIG.8. On the other hand, when the screen displayed on the display114is not the prohibited screen (NO in S230), the app138proceeds to S240.

In S240, the app138acquires one piece of pull notification information from the notification list144.

In S242, the app138pop-up displays, on the display114, the pull notification screen corresponding to the pull notification screen data included in the acquired pull notification information. On the pull notification screen, a message related to a cartridge (e.g., “would you like to purchase a cartridge?”), a message related to a remote print service (e.g., “would you like to subscribe to a remote print service?”), a message related to the flat-rate service (e.g., “would you like to subscribe to a flat-rate service?”), or the like.

In S244, the app138deletes the pull notification information corresponding to the acquired pull notification information from the notification list144. Further, the app138changes the display information associated with the acquired pull notification information in the receipt information table140from “not yet displayed” to “displayed”.

In S246, the app138determines whether a time which has elapsed since the pull notification screen was pop-up displayed exceeds a notification time (e.g., 10 seconds). When the elapsed time exceeds the notification time, the app138determines YES in S246and proceeds to S248.

In S248, the app138deletes the pull notification screen from the display114.

S250is the same as S222. When the app138determines YES in S250, the app138ends the process ofFIG.8. On the other hand, when the app138determines NO in S250, the app138returns to S240. In other words, the app138repeatedly executes the processes of S240to S248until the notification list144becomes empty. In other words, the pull notification screen may be consecutively pop-up displayed on the display114. When the notification list144includes the push notification information (see S20ofFIG.6), the app138may display, on the display114, the push notification screen corresponding to the push notification screen data included in the push notification information in S242.

For example, when the print preview screen is displayed on the display114, it is highly likely that the user wishes to cause the MFP10to execute printing. In such a situation, it bothers the user if the pull notification screen is displayed on the display114. According to the aforementioned configuration, the terminal device100does not pop up the pull notification screen on the print preview screen when the filter condition is satisfied (YES in S212), the timing condition is satisfied (YES in S214), and the print preview screen is displayed on the display114(YES in S230). Consequently, the user can execute an operation to cause the MFP10to execute printing without being bothered by the pull notification screen. Accordingly, user convenience can be enhanced. Further, in general, when the pull notification screen is pop-up displayed on the display114and this pull notification screen is selected, a screen different from the currently-displayed screen is displayed on the display114. Therefore, when the pull notification screen is pop-up displayed on the print preview screen and this pull notification is mistakenly selected, a screen different from the print preview screen is displayed on the display114. In this case, the user needs to execute again the operation to display the print preview screen. According to the above configuration, since the pull notification screen is not displayed on the print preview screen, the print preview screen can be suppressed from being unintentionally changed. Accordingly, user convenience can be enhanced. When another screen included in the prohibited screen list146(e.g., the print image edit screen, the WFD setting screen) is displayed on the display114as well, the pull notification screen is not displayed on this screen, by which user convenience can be enhanced.

Next, with reference toFIG.9toFIG.11, specific cases Case A to Case C executed by the processes ofFIG.6toFIG.8will be described.

With reference toFIG.9, Case A in which a pull notification screen616related to the consumable (i.e., a cartridge) is pop-up displayed will be described. The initial state of Case A is the state after the registration process ofFIG.4. The device ID “DV1”, the model name “MN1”, the first registration information “not registered”, the second registration information “not registered”, the first support information “ON” and the second support information “ON” are stored in the device table142in association with each other. Further, the display information “not yet displayed” and the first pull notification information PL1(seeFIG.2) including the notification ID “ID1”, the type information “consumable”, the consumable condition “remaining amount≤threshold” and the timing condition “Jan. 1, 2022 10:00” are stored in the receipt information table140in association with each other. The remaining amount information “20” of the MFP10A is stored in the memory134of the terminal device100. The current date and time is “Jan. 1, 2022 9:58”. Hereafter, a screen displayed on the display114when the state of the app138is the foreground state will be illustrated by a thin line and a screen displayed on the display114when the state of the app138is the background state will be illustrated by a thick line.

As illustrated inFIG.9, in the initial state of Case A, a home screen606is displayed on the display114of the terminal device100. The home screen606is the same as the home screen604ofFIG.5.

In T110, when the app138accepts selection of the print button502, the app138displays a file selection screen608on the display114. The file selection screen608includes file selection buttons520,522for selecting a file to be printed and a cancel button524. The app138determines that the screen displayed on the display114has been changed from the home screen606to the file selection screen608(YES in S120ofFIG.7), and executes the pull notification display process (seeFIG.8). The app138identifies the first pull notification information PL1associated with the display information “not yet displayed” in the receipt information table140as the target pull notification information (S210ofFIG.8). Next, the app138determines whether the filter condition is satisfied (S212). First, the app138identifies that the type information in the first pull notification information PL1is “consumable” and determines that the consumable notification flag148is “ON”. Next, the app138determines that the first pull notification information PL1does not includes the first registration condition, the first support condition or the second support condition but includes the consumable condition. Then, the app138determines that the remaining amount “20” indicated by the remaining amount information of the MFP10A stored in the memory134is equal to or lower than a threshold in the consumable condition (e.g., “30”). In this case, the app138determines that the filter condition is satisfied (YES in S212). Next, the app138determines that the current date and time “Jan. 1, 2022 9:58” is before the notification date and time “Jan. 1, 2022 10:00” and determines that the timing condition is not satisfied (NO in S214). In this case, the first pull notification information PL1is not added to the notification list144. Next, the app138determines that the notification check on all the pull notification information associated with the display information “not yet displayed” in the receipt information table140has been completed (YES in S220) and determines that the notification list144is empty (YES in S222). In this case, the pull notification screen is not pop-up displayed.

When the app138accepts selection of the file selection button520in T112, the app138displays a print preview screen610on the display114. The print preview screen610includes a print preview image Pv, an edit button530for displaying the print image edit screen, a print setting button532for displaying the print setting screen, an OK button534and a cancel button536. The app138determines that the screen displayed on the display114has been changed from the file selection screen608to the print preview screen610(YES in S120ofFIG.7) and executes the pull notification display process (seeFIG.8). As with the case in which the file selection screen608is displayed, the app138identifies the first pull notification information PL1as the target pull notification information (S210ofFIG.8) and determines that the filter condition is satisfied (YES in S212). The current date and time at the time of T112is “Jan. 1, 2022 10:02”. The app138determines that the current date and time “Jan. 1, 2022 10:02” is after the notification date and time “Jan. 1, 2022 10:00” in the timing condition, determines that the timing condition is satisfied (YES in S214) and adds the first pull notification information PL1in the notification list144(S216). Next, the app138determines that the notification check on all the pull notification information has been completed (YES in S220) and determines that the notification list144is not empty (NO in S222). Next, the app138determines that the print preview screen610displayed on the display114is the prohibited screen (YES in S230). In this case, the pull notification screen is not pop-up displayed.

When the app138accepts selection of the OK button in T114, the app138sends a print instruction including the selected file “aaa.pdf” to the MFP10A and displays the print executing screen612on the display114. In the print executing screen, a message indicating that printing is being executed by the MFP10A is displayed. Further, the app138determines that the screen displayed on the display114has been changed from the print preview screen610to the print executing screen612(YES in S120ofFIG.7) and executes the pull notification display process (seeFIG.8). As with the case in which the print preview screen610is displayed on the display114, the app138adds the first pull notification information PL1in the notification list144(S210to S220ofFIG.8). Next, the app138determines that the notification list144is not empty (NO in S222) and determines that the print executing screen612displayed on the display114is the prohibited screen (YES in S230). In this case as well, the pull notification screen is not pop-up displayed.

When the app138receives the print completion notification from the MFP10A in T120, the app138displays the home screen606on the display114. The app138determines that the screen displayed on the display114has been changed from the print executing screen612to the home screen606(YES in S120ofFIG.7) and executes the pull notification display process (seeFIG.8). As with the case in which the print preview screen610is displayed on the display114, the app138adds the first pull notification information PL1in the notification list144(S210to S220ofFIG.8). Then, the app138determines that the notification list144is not empty (NO in S222) and determines that the home screen606displayed on the display114is not the prohibited screen (NO in S230). In this case, the app138acquires the first pull notification information PL1from the notification list144(S242) and pop-up displays the pull notification screen616corresponding to the pull notification screen data MD1included in the first pull notification information PL1on the home screen606. On the pull notification screen616, a message indicating that a discount coupon for a cartridge is received and a message inquiring whether the user wants to purchase a cartridge are displayed.

When the app138accepts an operation to select the pull notification screen616in T122, the app138supplies an URL corresponding to a cartridge purchase page618to the OS136. The OS136accesses the URL and displays the cartridge purchase page618on the display114. Consequently, the state of the app138transitions from the foreground state to the background state. The cartridge purchase page618includes a cartridge selection box540for selecting a type of a cartridge to be purchased, an OK button542and a cancel button544. As described above, the user can easily purchase a cartridge in response to selecting the pull notification screen616.

(Effects of Case A)

As described in Case A, when the filter condition and the timing condition are satisfied (YES in S212and YES in S214ofFIG.7) and the display is changed from the print executing screen612to the home screen606, the terminal device100displays the pull notification screen616on the home screen606. With such a configuration, the pull notification screen can pop up at a suitable timing as compared to a configuration in which the pull notification screen616is not displayed despite the display being changed from the print executing screen612(i.e., the prohibited screen) to the home screen606(i.e., a screen not being the prohibited screen). Accordingly, user convenience can be enhanced.

With reference toFIG.10, Case B in which a pull notification screen624related to the remote print service is displayed will be described. The initial state of Case B is the same as the initial state of Case A except that the display information “not yet displayed” and the second pull notification information PL2including the notification ID “ID2”, the type information “service”, the first registration condition “not registered”, the first support condition “ON” and the timing condition “Jan. 2, 2022 10:00” are stored in the receipt information table140in association with each other and that the current date and time is “Jan. 2, 2022 9:58”.

When the app138accepts selection of the setting button506in T210, the app138displays an app setting screen620on the display114. The app setting screen620includes a home button550for displaying the home screen, the notification setting button552for displaying a notification setting screen622on which settings of the consumable notification flag148and the service notification flag150can be changed, an update button554for updating the app138and a license button556for checking license information of the app138. The app138determines that the screen displayed on the display114has been changed from the home screen606to the app setting screen620(YES in S120ofFIG.7) and executes the pull notification display process (seeFIG.8). The app138identifies the second pull notification information PL2associated with the display information “not yet displayed” in the receipt information table140as the target pull notification information (S210ofFIG.8). Next, the app138determines whether the filter condition is satisfied (S212). The app138firstly identifies that the type information in the second pull notification information PL2is “service” and determines that the service notification flag150is “ON”. Next, the app138determines that the first registration condition “not registered” in the second pull notification information PL2and the first registration information “not registered” of the MFP10A in the device table142match, and determines that the first support condition “ON” in the second pull notification information PL2and the first support information “ON” of the MFP10A in the device table142match. In this case, the app138determines that the filter condition is satisfied (YES in S212). Next, the app138determines that the current date and time “Jan. 2, 2022 9:58” is before the notification date and time “Jan. 2, 2022 10:00” and determines that the timing condition is not satisfied (NO in S214). In this case, the second pull notification information PL2is not added to the notification list144. Next, the app138determines that the notification check on all the pull notification information associated with the display information “not yet displayed” in the receipt information table140has been completed (YES in S220) and determines that the notification list144is empty (YES in S222). In this case, the pull notification screen is not pop-up displayed.

When the app138accepts selection of the notification setting button552in T212, the app138displays a notification setting screen622on the display114. The notification setting screen622includes a home button560, a consumable notification setting box562for changing settings of the consumable notification flag148and a service notification setting box564for changing settings of the service notification flag150. As with the case in which the app setting screen620is displayed, the app138determines that the filter condition is satisfied (YES in S212), determines that the timing condition is not satisfied (YES in S214) and does not add the second pull notification information PL2to the notification list144(S216). Next, the app138determines that the notification check on all the pull notification information has been completed (YES in S220) and determines that the notification list144is empty (NO in S222). In this case as well, the pull notification screen is not pop-up displayed.

When the app138accepts selection of the home button560in T214, the app138displays the home screen606on the display114. The current date at the time of T214is “Jan. 2, 2022 10:01”. Therefore, the app138determines that the filter condition is satisfied (YES in S212), determines that the timing condition is satisfied (YES in S214), and adds the second pull notification information PL2to the notification list144(YES in S216). Next, the app138determines that the notification check on all the pull notification information has been completed (YES in S220), determines that the notification list144is not empty (NO in S222) and determines that the home screen606displayed on the display114is not the prohibited screen (NO in S230). In this case, the app138acquires the second pull notification information PL2from the notification list144(S242) and pop-up displays the pull notification screen624corresponding to the pull notification screen data MD2included in the second pull notification information PL2on the home screen606. On the pull notification screen624, a message to prompt the user to subscribe to the remote print service is displayed.

When the app138accepts an operation to select the pull notification screen624in T220, the app138displays a remote print service introduction screen626on the display114. The remote print service introduction screen626includes a message indicating contents of the remote print service and a button570to proceed to the next page. Consequently, it is possible to introduce the contents of the remote print service to the user and prompt the user to subscribe to the remote print service.

Next, with reference toFIG.11, Case C in which the push notification screen632is displayed will be described. The initial state of Case C is the state after the registration process ofFIG.4, and the state of the app138is the background state. The previous screen is the home screen606(seeFIG.10). A top screen630is displayed on the display114.

When the app138receives the push notification information from the notification server200in T310, the app138determines that the state of the app138is the background state (YES in S10ofFIG.6) and supplies a notification instruction including the received push notification instruction to the OS136(S30). When the OS136acquires the notification instruction from the app138, the OS136pop-up displays the push notification screen632corresponding to the push notification screen data included in the push notification information on the display114. On the push notification screen632, a message to notify the user of the remote print service is displayed.

When the OS136accepts selection of the push notification screen632in T312, the OS136supplies a foreground transition instruction to the app138. The foreground transition instruction of the present case is an instruction causing the state of the app138to transition from the background state to the foreground state and is also an instruction for displaying the remote print service introduction screen626on the display114. When the app138acquires the foreground transition instruction from the OS136(S32ofFIG.6), the app138determines that the home screen606which is a screen last displayed in the previous foreground state is not the prohibited screen (NO in S34) and displays the remote print service introduction screen626on the display114.

(Effects of Present Embodiment)

As described above, the terminal device100receives the push notification information or the pull notification information from the notification server200. The terminal device100selectively displays one of a plurality of screens (e.g., the home screen606, the file selection screen608, the print preview screen610ofFIG.9). When the filter condition and the timing conditions are satisfied (YES in S212and YES in S214ofFIG.8) and a screen which is not the prohibited screen (e.g., the home screen606) is displayed (NO in S230), the terminal device100displays the push notification screen or the pull notification screen on the screen. When the filter condition and the timing condition are satisfied (YES in S212and YES in S214ofFIG.8) and the prohibited screen is displayed (YES in S230), neither the push notification screen nor the pull notification screen is displayed on the prohibited screen. Further, when the filter condition or the timing condition is not satisfied (NO in S212or NO in S214), neither the push notification screen nor the pull notification screen is displayed. Therefore, depending on the screen displayed on the display114of the terminal device100, whether to display the push notification screen or the pull notification screen can be changed. Accordingly, user convenience can be enhanced.

The push notification information and the pull notification information are examples of “notification information”. The home screen606, the file selection screen608, the print preview screen610ofFIG.9, and the like, are examples of “a plurality of screens”. The case in which YES is determined in S212and YES is determined in S214ofFIG.8is an example of “the predetermined condition is satisfied”. The case in which NO is determined in S212or NO is determined in S214ofFIG.8is an example of “the notification information is not displayed”. The screen which is not the prohibited screen (e.g., the home screen606ofFIG.9) is an example of “first screen”. The prohibited screen (e.g., the print preview screen610ofFIG.9) is an example of “second screen”. The MFP10A is an example of “image forming device”. The print instruction or the scan instruction is an example of “execution instruction”. The print preview screen, the print setting screen, the print executing screen, the scan setting screen and the scan executing screen are examples of “screen related to the execution instruction”. The print image edit screen and the scan image edit screen are examples of “screen for editing image data”. The MFP10A, the AP and the Wi-Fi setup screen are an example of “communication device”, “external device” and “screen for establishing a wireless connection”, respectively. The MFP10A, the terminal device100and the WFD setting screen are an example of “communication device”, “external device” and “screen for establishing a wireless connection”, respectively. The pull notification information request is an example of “notification information request”. The remote print service and the flat-rate service are examples of “predetermined service”.

T52ofFIGS.4and S114ofFIG.7are examples of “receive notification information”. T60ofFIG.4and the like are examples of “selectively display one screen”. S242ofFIG.8is an example of “display the notification information on the first screen”.

(First Modification) An allowed screen list may be stored in the memory134of the terminal device100instead of the prohibited screen list146. The allowed screen list is a list of screens on which pop-up of the push notification screen or the pull notification screen is allowed (i.e., allowed screens). The allowed screen list includes, for example, a home screen, a file selection screen, an app setting screen and a notification setting screen. In the present modification, the app138determines in S34ofFIG.6whether the previous screen is the allowed screen or not. When the previous screen is the allowed screen, the app138proceeds to S36. When the previous screen is not the allowed screen, the app138ends the process ofFIG.6. The app138determines in S230ofFIG.8whether the screen displayed on the display114is the allowed screen. When the screen displayed on the display114is the allowed screen, the app138proceeds to S240, while when the screen displayed on the display114is not the allowed screen, the app138ends the process ofFIG.8. In the present modification, the allowed screen and a screen which is not the allowed screen are an example of “first screen” and “second screen”, respectively.

(Second Modification) After the display of the prohibited screen on the display114is changed to a screen which is not the prohibited screen, the app138may not display the pull notification information on the display114. For example, the app138may display the pull notification information on the display114when another screen which is not the prohibited screen is further displayed after the display of the prohibited screen on the display114is changed to the screen which is not the prohibited screen.

(Third Modification) The prohibited screen list may not include any one of the screens related to the print instruction (e.g., the print preview screen, print setting screen and the print executing screen), the screens related to the scan instruction (e.g., the scan setting screen and scan executing screen), the screens for editing image data (e.g., the print image data , the scan image data) (e.g., the print image edit screen and scan image edit screen), and the screens for establishing a wireless connection with the external device (e.g., the WFD setting screen and the Wi-Fi set-up screen).

(Fourth Modification) Under the environment in which the terminal device100does not receive the push notification information, the process ofFIG.6can be omitted.

(Fifth Modification) Under the situation in which the terminal device100does not receive the pull notification information,FIGS.7and S210to S222ofFIG.8can be omitted. In the present modification, when the push notification information is received from the notification server200and NO is determined in S10ofFIG.6(i.e., when the state of the app138is the foreground state), the app138executes S230to S250ofFIG.8.

(Sixth Modification) The pull notification information may include a version condition to designate a version of the MFP app138. In the present modification, the app138determines in S212ofFIG.8whether the current version of the MFP app138installed in the terminal device100is equal to or greater than a predetermined version indicated by the version condition in the pull notification information. When the current version of the MFP app138is equal to or greater than the predetermined version, the app138determines that the filter condition is satisfied.

(Seventh Modification) In the above embodiments, the processes ofFIGS.4to11are implemented by a software (e.g., the program136,138), however, at least one of these processes may be implemented by hardware such as a logic circuit. In the present disclosure, the phrase “at least one of A, B, and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C)”.