Detailed Description
Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While the preferred embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The term "include" and variations thereof as used herein is meant to be inclusive in an open-ended manner, i.e., "including but not limited to". Unless specifically stated otherwise, the term "or" means "and/or". The term "based on" means "based at least in part on". The terms "one example embodiment" and "one embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first," "second," and the like may refer to different or the same object.
As described above, the conventional page routing scheme implements only a route lookup function, and does not support route callback, nor non-page user interface component routing and pure logic component routing. In addition, the conventional page routing scheme, which does not exist in a plug-in form, cannot be well decoupled from the components when processing page rollback.
To address, at least in part, one or more of the above problems, as well as other potential problems, example embodiments of the present disclosure propose a scheme for page routing. The scheme comprises the following steps: determining a forward routing method cluster, wherein the forward routing method cluster is associated with a routing flow component; allowing the object to be registered in response to determining that the corresponding class or routing method module of the object to be registered conforms to the forward routing method cluster of the corresponding routing flow component, the object comprising at least one of a page, a user interface component, and a logic component; acquiring a route name and a route list of an object allowed to be registered so as to generate route mapping information; storing the generated route mapping information to a corresponding route flow component; in response to determining that a routing intent for the forward route is received, the route flow component queries the route mapping information to determine a target object and a target route name indicated by the routing intent; acquiring a target class corresponding to the target routing name so as to instantiate the target class; and transmitting the routing intent to the target class such that the target class parses the routing intent for routing from the current page to the target object.
In the above scheme, by determining a forward routing method cluster, and after determining that the corresponding class or routing method module of the object to be registered (e.g., page, user interface component and logic component) conforms to the forward routing method cluster of the corresponding routing flow component, and generating routing mapping information stored to a corresponding routing process component based on a routing name and a routing list of an object to be registered, the present disclosure can conveniently define or increase or decrease routing rules of registrable pages, user interface components and logic components through a forward routing method cluster, without changing the whole routing core logic and the componentization structure, therefore, the page routing scheme of the disclosure has good componentization decoupling, that is, the logic jump does not need to make explicit dependency relationship, and the routing flow component can not only process the page forward routing, but also route to the non-page display type logic component. In addition, by determining that a forward routing intent is received, the routing flow component queries the routing mapping information to obtain a target class corresponding to the target routing name, such that the target class is instantiated and the target class parses the routing intent for routing from the current page to the target page and to the target component. The present disclosure establishes a key value mapping relationship between the route mapping information and the route processing logic block, so that when a route intention is received, the route flow component can trigger a preset processing logic.
Therefore, the routing scheme disclosed by the invention has good componentization decoupling performance, and the routing flow components can process page forward routing and can also route to non-page display type logic components.
Fig. 1 shows a schematic diagram of a system 100 for implementing a method for page routing according to an embodiment of the present disclosure. As shown in fig. 1, the system 100 includes: user terminal 110, server 140, and network 150. The user terminal 110 and the server 140 may perform data interaction through the network 150.
With respect to the user terminal 110, it is used to determine a cluster of forward routing methods; allowing the proxy registration object to be registered when determining that the corresponding class or routing method module of the object to be registered conforms to the forward routing method cluster of the corresponding routing flow component; storing route mapping information generated based on the route name and the route list to a corresponding route flow component; and upon determining that a routing intent for the forward route is received, causing the routing flow component to query the routing mapping information to determine a target object; and obtaining a target class corresponding to the target routing name for instantiation, and routing to the target object via the resolved routing intent. The user terminal 110 includes, for example: a forward routing method cluster determining unit 112, a unit for determining objects to be registered 114, a routing mapping information generating unit 116, a routing mapping information storage unit 118, a target object determining unit 120, a target class instantiation unit 122, and a routing intention parsing unit 124.
Regarding the forward routing method cluster determining unit 112, it is used to determine a forward routing method cluster, which is associated with a routing flow component.
A determine to-be-registered object unit 114, configured to determine whether a corresponding class or routing method module of the to-be-registered object conforms to a forward routing method cluster of a corresponding routing flow component; and if the corresponding class or the routing method module of the object to be registered is determined to be in accordance with the forward routing method cluster of the corresponding routing flow component, allowing the object to be registered, wherein the object comprises at least one of a page, a user interface component and a logic component.
Regarding the route mapping information generating unit 116, it is used to acquire the route name and the route list of the object allowed to be registered, so as to generate the route mapping information.
And a route mapping information storage unit 118 for storing the generated route mapping information to the corresponding route flow component.
A target object determination unit 120 for determining whether a routing intention for a forward route is received; if it is determined that a routing intent is received for the forward route, the route flow component queries the route mapping information to determine a target object for the routing intent, the routing intent indicating at least the target object and a target route name.
And a target class instantiation unit 122, configured to obtain a target class corresponding to the target route name, so as to instantiate the target class.
And a route intention analyzing unit 124 for transmitting the route intention to the target class so that the target class analyzes the route intention for routing from the current page to the target object.
A method 200 for page routing according to an embodiment of the present disclosure will be described below in conjunction with fig. 2 and 3. Fig. 2 shows a flow diagram of a method 200 for page routing according to an embodiment of the present disclosure. Fig. 3 shows a schematic diagram of a method for page routing according to an embodiment of the present disclosure. It should be understood that the method 200 may be performed, for example, at the electronic device 800 depicted in fig. 8. May also be performed at the terminal device 110 depicted in fig. 1. It should be understood that method 200 may also include additional acts not shown and/or may omit acts shown, as the scope of the disclosure is not limited in this respect.
At step 202, terminal device 110 determines a cluster of forward routing methods, which is associated with a routing flow component.
The forward routing scenario is for example: after detecting that the user clicks a certain icon on the current page, the terminal device 110 jumps to the next page or pages corresponding to the button.
With respect to a cluster of forward routing methods for defining an access protocol for forward routing, the cluster of forward routing methods is associated with a routing flow component. For example, the terminal device may predetermine a plurality of forward routing method clusters, such as a forward page routing method cluster, a forward user interface component (collectively referred to as UI component)/a logical routing method cluster. As shown in fig. 3, routing center 318 is used to manage a routing flow component 320, routing flow component 320 associating, for example, a routing style for a method cluster 322 for forward page routing, a method cluster 324 for forward UI component/logical routing, and a backward page routing 326.
At step 204, terminal device 110 determines whether the corresponding class or routing method module of the object to be registered conforms to the forward routing method cluster of the corresponding routing flow component. For example, the terminal device 110 determines whether the corresponding class of the object to be registered can implement or respond to the condition corresponding to the forward routing method cluster.
Regarding the object to be registered, it includes at least one of a page to be registered, a user interface component, and a logic component. With regard to the logic component, it may have an interactive function. The object to be registered is, for example, registered by using a Router method of a Router class. The registration information includes at least two parameters: routing addresses and corresponding classes.
With respect to classes, it is a type of route that is able to understand the corresponding route. For example, the route type "a Activity" represents a route URL that can understand the route name a. When the route is triggered, the flow component indexes the object matched with the route according to the route, and at the moment, the type of the matched object is judged to decide how to trigger the route processing logic. When the matching object is a class, the class is instantiated and then called. When the matching object is a method block, the method block is directly referred to and triggered, so that logic inside the method block is executed. For a routing with higher complexity, classes are generally adopted for carrying, so that a high-cohesion and single-service logic dispersible routing processing class is formed, and generally, the number of code lines of the processing class is from more than 10 lines to thousands of lines. The mapping between the route name and the route type that can understand the route name can be stored in a route flow component. The corresponding class of objects (e.g., as indicated by reference 316) such as pages, user interface components, and logic components need to be able to conform to the forward routing methodology cluster before it can be registered with routing center 318, shown in fig. 3, for association with routing flow component 320 and, in turn, be subsequently targeted for routing intent (e.g., as indicated by reference 314). The routing intent 312 is, for example, from a routing URL sent by the routing initiator 310 in fig. 3.
Regarding the routing method module (also referred to as method block), it is an anonymous function containing execution logic, and the anonymous function is directly introduced into the routing flow component as an entry when registering a route, and then the routing flow component constructs a mapping relationship between the route name and the method block, which is equivalent to the "mapping relationship between the route name and the target class". For the routing problem which is simple in logic and can be solved by about 10 lines of codes, the routing problem is complicated to be carried by using a class form, and the form of the method block is lighter and is convenient to aggregate and manage in a code file. The following method blocks are illustrated by exemplary code:
“WorkflowManager.registerRoute(route:"sqb://go/some/page", handler:^(id paras) {
// analyze paras, logic to respond to the content of paras
}”
Wherein ^ (id para) {// analyze para, make response logic for the content of para }, which is a method block. The manner for determining whether a cluster of forward routing methods corresponding to a routing flow component is satisfied includes, for example: terminal device 110 determines whether the following are all satisfied: the corresponding class has a predefined version number; the corresponding class indicates an understandable routing list; and the corresponding class indicates a resolution method for the routing intent. If the terminal device 110 determines that all the above items are satisfied, it is determined that the corresponding class of the object to be registered conforms to the forward routing method cluster of the corresponding routing flow component.
At step 206, if terminal device 110 determines that the corresponding class or routing method module of the object to be registered conforms to the forward routing method cluster of the corresponding routing flow component, the object to be registered is allowed to be registered. For example, if terminal device 110 determines that the corresponding class of object 316 (e.g., a page) conforms to forward page routing method cluster 322, then the object to be registered is allowed to be registered with routing center 318. If the terminal device 110 determines that the corresponding class or routing method module of the object to be registered does not conform to the forward routing method cluster of the corresponding routing flow component, it jumps to step 220 to disallow the object to be registered.
At step 208, the terminal device 110 acquires the route name and route list of the object allowed to be registered, so as to generate route mapping information.
At step 210, terminal device 110 stores the generated route mapping information to the corresponding route flow component. For example, the terminal device 110 obtains a route name and a route list of the object 316 (e.g., a page), and generates route mapping information based on the route name and the route list, and stores the route mapping information to a corresponding route flow component.
At step 212, end device 110 determines that a routing intent for the forward route is received. If end device 110 determines that no routing intent has been received for the forward route, execution continues at step 212.
If, at step 214, end device 110 determines that a routing intent for the forward route is received, the route flow component queries the route mapping information to determine that the routing intent indicates at least a target object and a target route name. At step 216, terminal device 110 obtains the target class corresponding to the target route name to instantiate the target class.
At step 218, the end device 110 transmits the routing intent to the target class such that the target class resolves the routing intent for routing from the current page to the target object.
In some embodiments, if terminal device 110 determines that the target object indicated by the routing intent for the forward route is an objective function; based on the objective function, a user interface component or logic component is generated. For example, some routing URLs require page stub, such as page forward routing. While some do not require page-hooking by a URL, for example, the indicated target object of the routing URL is a target function (e.g., without limitation, MD5 calculation). The target function is bound with the corresponding method module, and the mapping relation of the target function and the corresponding method module is stored in the routing flow component. And the routing flow component acquires the target function and generates a corresponding user interface component or logic component based on the corresponding method module indicated by the mapping relation.
In the above solution, by determining a forward routing method cluster, determining that a corresponding class or routing method module of an object to be registered (a page, a user interface component and a logic component) conforms to a forward routing method cluster of a corresponding routing flow component, and generating routing mapping information stored in the corresponding routing flow component based on a routing name and a routing list of the object to be registered, the present disclosure can conveniently define or increase or decrease routing rules of the object to be registered through the forward routing method cluster, so that a non-page-exposed UI component and a pure logic component can be registered to the routing flow component according to a method cluster specification without changing a whole routing core logic and componentization structure, and thus, the page routing scheme of the present disclosure has a good componentization hop decoupling property, i.e., no explicit dependency relationship is required during logic, and an application range of forward routing is extended, routing of non-page UI components and pure logic components is supported.
In addition, by determining that the forward routing intent is received, the routing flow component queries the routing mapping information to obtain a target class corresponding to the target routing name, so as to instantiate the target class for the target class to resolve the routing intent for routing from the current page to the target page and to the target component. The present disclosure establishes a key value mapping relationship between the route mapping information and the route processing logic block, so that when a route intention is received, the route flow component can trigger a preset processing logic. Therefore, the routing scheme disclosed by the invention has good componentization decoupling performance, and the routing flow components can process page forward routing and can also route to non-page display type logic components.
In some embodiments, method 200 also includes method 400 for routing callbacks. A method 400 for route callbacks is described below in conjunction with fig. 4. FIG. 4 illustrates a flow diagram of a method 400 for routing callbacks in accordance with an embodiment of the present disclosure. It should be understood that the method 400 may be performed, for example, at the electronic device 800 depicted in fig. 8. May also be performed at the terminal device 110 depicted in fig. 1. It should be understood that method 400 may also include additional acts not shown and/or may omit acts shown, as the scope of the disclosure is not limited in this respect.
At step 402, end device 110 determines whether the received routing intent indicates a route callback. For example, some routing URLs indicate a return value for indicating that the routing originator wishes to obtain a routing result.
At step 404, if terminal device 110 determines that the received route intent indicates a route callback, information of the originator of the current route is obtained.
At step 406, end device 110 determines whether it has already routed to the target object indicated by the routing intent.
At step 408, if end device 110 determines that it has already routed to the target object indicated by the routing intent, callback information for the current route is obtained.
At step 410, terminal device 110 forwards the callback information to the originator of the current route via the route flow component.
The following code illustrates the forward routing approach, and the route callback approach:
“[SQBRouteManager route:@”xxx” withParameters:@{} success:^(id ret) {
// route callback
} failed:^(NSError *error) {
// routing failure
}];”
By adopting the above means, the method and the device can support route callback, and can return the processing result of the target object to the initiator of the route.
A method 500 for backward routing is described below in conjunction with fig. 5-7. Fig. 5 shows a flow diagram of a method 500 for backward routing according to an embodiment of the present disclosure. Fig. 6 shows a schematic diagram of a page stack adjustment method 600 when a target page exists according to an embodiment of the present disclosure. Fig. 7 shows a schematic diagram of a page stack adjustment method 700 when a target page does not exist according to an embodiment of the present disclosure. It should be understood that the method 500 may be performed, for example, at the electronic device 800 depicted in fig. 8. May also be performed at the terminal device 110 depicted in fig. 1. It should be understood that method 500 may also include additional acts not shown and/or may omit acts shown, as the scope of the disclosure is not limited in this respect.
At step 502, terminal device 110 listens to the page stack via the page flow listening unit to determine whether a change has occurred to the page stack.
With respect to the page stack, it is used to maintain all pages currently in the form of a stack. The pages in the page stack have a certain order and each page has a corresponding workflow identification (e.g., denoted as "workflow id"), e.g., as shown in fig. 6, and page N indicated by reference 610 is, e.g., a payment page. The page B indicated by the mark 630 is, for example, an item list page. The page indicated by the marker 620 is, for example, a page serving as a trigger source of the backward flow, i.e., a trigger source page for triggering a jump to the page N. For example, if the user wishes to modify a certain item after entering the payment page, it needs to return from page N to page B.
Regarding the page flow listening unit (e.g., the page flow listening unit 332 in fig. 3), it is pre-created by the routing flow component of the terminal device 110 for listening for a page stack change and a change in routing intent for backward jump of each page in the page stack. For example, the page flow monitoring unit 332 monitors the overall change of the page stack 330 and the change of the backward route "intention declaration" of each page in the page stack 330 at any time, so that the routing flow component dynamically adjusts the page stack 330 in real time.
With respect to the manner of listening to the page stack, this includes, for example: the page stack can be read in the navigation controller of the APP main window. The forward and backward of the page needs to call the relevant interface to trigger, therefore, the routing flow component can Hook (Hook) the relevant interface so that the relevant interface can be sensed by the routing flow component once being called, and the effect of monitoring the page stack is further realized.
At step 504, if terminal device 110 determines that the page stack has changed, it monitors the change of the attribute of the backward workflow identifier of each page, where the backward workflow identifier is used to indicate a target page for backward jump.
Regarding the way to determine whether a page stack has changed, it is, for example: determining whether an interface related to page forward or backward is called to be completed; in response to determining that the interface associated with the page forward or backward is called, the routing flow component triggers a hook for reading page stack information of the navigation controller; comparing the page stack information read by the current trigger hook with the page stack information read by the last trigger hook; and determining whether the page stack is changed based on the comparison result.
If the routing flow component determines that the page stack information read by the current trigger hook changes relative to the page stack information read by the last trigger hook based on the comparison result, the change of the attribute of the backward workflow mark of each page is monitored, and the backward workflow mark (for example, the backward workflow mark is represented as 'backward workflow ID') is used for indicating a target page of backward jump, namely the backward workflow mark, and is the workflow mark of the target page of backward jump.
The attribute of the backward workflow marker is, for example, a memory address pointed to by the workflow marker of the target page. This attribute, once changed, triggers a callback. Therefore, the terminal device 110 may determine the change of the attribute of the backward workflow identifier of each page, for example, by monitoring the callback information of the memory address change pointed by the backward workflow identifier of each page.
At step 506, terminal device 110 determines whether a page identified by the backward flow trigger source for the workflow of the current page exists in the page stack. The backward flow trigger source is used for indicating which page trigger generates a new page in the page stack, that is, the identifier of the trigger source page of the newly generated page in the page stack, and the new page in the page stack is associated with the backward flow trigger source. The backward flow trigger source is a page identified by the work flow of the current page, namely, the backward trigger source page of the current page. For example, the actual payment condition of the order is inquired according to the order result, and when the order is inquired for the first time, a payment result page displays 'payment failure' for example; when queried again, the payment results page displays, for example, "payment successful". In this example, the order results page is, for example, a backward flow trigger source page. Which causes the page stack to generate the payment results page twice. As shown in fig. 6, the current page is page N indicated by the label 610, and the page indicated by the label 620 is a backward flow trigger source of the workflow identification of the current page (i.e. page N indicated by the label 610, whose workflow identification is "N", for example). If terminal device 110 determines that there is no page identified by the workflow of the backward flow trigger source for the current page, it jumps to step 510. At step 508, if the terminal device 110 determines that there is a page (e.g., indicated as backsowner = N) whose backward flow trigger source is the workflow identification of the current page, the page whose backward flow trigger source is the workflow identification of the current page is deleted in the page stack. For example, if the terminal device 110 has a page identified by the workflow of the current page as a backward flow trigger source (i.e., the page indicated by the marker 620) in the page stack shown in fig. 6, the page indicated by the marker 620 is deleted. By the means, the routing flow component can correct the page stack, and dynamically generate or delete certain pages in the page stack, so that the target page can be quickly loaded when the current page is backed up.
At step 510, terminal device 110 determines whether the attributes of the backward workflow identification of the current page have changed. For example, the terminal device 110 may monitor whether the memory address pointed by the flow identifier of the target page of the backward jump of the current page (e.g., the page N indicated by the marker 610) changes.
At step 512, if terminal device 110 determines that the attribute of the backward workflow identifier of the current page changes, it determines whether a target page exists before the current page, where the workflow identifier is equal to the backward workflow identifier.
The workflow identification is equal to the target page of the backward workflow identification, which is, for example, page B indicated by the mark 630 shown in fig. 6 (the workflow identification of this page B is, for example, "B"). The page B is a target page of backward jump of the current page (page N).
At step 514, if terminal device 110 determines that there is a target page with a workflow identifier equal to the backward workflow identifier before the backward workflow identifier of the current page, the page between the current page and the target page is deleted in the page stack. For example, if it is determined that a target page (e.g., page B, e.g., backsWorkflowID = B, expressed as, for example, page N) of the backward jump exists before the current page (e.g., page N) in the page stack, all pages between page N and page B are deleted. By monitoring the change of the backward workflow identification attribute in the page stack and the page sequence based on the page stack, the method and the device can delete the page between the current page and the target page before a user presses a return button, and further can quickly load the target page during backward jump.
In some embodiments, for any "attribute change of the backward workflow identifier of the current page", the logic of the newly added page is triggered, and only before the newly added page, whether a page with the same trigger source as the current page exists is additionally checked, which means that the newly added page is triggered before the current page, and if so, the newly added page caused by the attribute change before needs to be deleted, so as to ensure that no redundant page exists when the page is backed. At step 516, if terminal device 110 determines that there is no target page whose workflow identifier is equal to the backward workflow identifier before the current page, a new page is created in the page stack, and the backward flow trigger source of the new page is the workflow identifier of the current page. For example, as shown in FIG. 7, assume that the backward workflow of the current page (e.g., page N indicated by the marker 710) identifies the target page pointed to (i.e., the target page of the backward jump, e.g., page X indicated by the marker 730, e.g., represented as: backWorkflowID = X of page N). The terminal device 110 determines that there is no target page (e.g., page X) of backward jump before the current page (e.g., page N) in the page stack, creates a new page (e.g., page X) in the page stack, and sets the trigger source of creating page X as the workflow identifier of page N (e.g., represented as: background owner = N of page X).
Regarding the way in which new pages are created, which, for example, is shown in FIG. 7, protocol 740 needs to be followed. The following schematically illustrates an example of the creation based on protocol 740:
“+(NSArray *)identifierCouple;
+(UIViewController*)backDestinationVCWithidentifier:(NSString*)identifier
parameters (id) params// Create instance "
At step 518, terminal device 110 adds the new page to the front of the current page.
At step 520, terminal device 110 listens for changes to the backward workflow identification of the new page.
At step 522, if terminal device 110 determines that the new page is rendered, the backward flow trigger source for the new page is nulled. As shown in fig. 7, if it is determined that page Y indicated by the newly created tab 750 or page X indicated by the tab 730 is presented, the backward flow trigger source of the new page indicated by the tab 760 is nulled.
Conventional schemes for page routing do not support backward routing. In the scheme of the method 500, a business party only needs to declare a workflow identifier of a rollback page, and a routing flow component automatically adjusts the page stack structure by monitoring the dynamic attribute change of the workflow identifier of each page in a page stack, so that the corresponding page is accurately displayed when the page is rolled back. The backward routing function under the page jump scene is realized, and the coupling problem during page rollback jump is solved.
FIG. 8 schematically illustrates a block diagram of an electronic device (or computing device) 800 suitable for use to implement embodiments of the present disclosure. The device 800 may be a device for implementing the methods 200, 400, and 500 shown in fig. 2, 4, and 5. As shown in fig. 8, device 800 includes a Central Processing Unit (CPU) 801 that may perform various appropriate actions and processes in accordance with computer program instructions stored in a Read Only Memory (ROM) 802 or loaded from a storage unit 808 into a Random Access Memory (RAM) 803. In the RAM, various programs and data required for the operation of the device 800 can also be stored. The CPU, ROM, and RAM are connected to each other by a bus 804. An input/output (I/O) interface 805 is also connected to bus 804.
A number of components in the device 800 are connected to input/output (I/O) 805, including: the input unit 806, the output unit 807, the storage unit 808, the central processing unit 801 perform the various methods and processes described above, such as performing the methods 200-500-for example, in some embodiments, the methods 200, 400, and 500 may be implemented as computer software programs stored on a machine readable medium, such as the storage unit 808. In some embodiments, part or all of the computer program can be loaded and/or installed onto device 800 via ROM and/or communications unit 809. When loaded into RAM and executed by a CPU, the computer program may perform one or more of the operations of methods 200, 400 and 500 described above. Alternatively, in other embodiments, the CPU may be configured by any other suitable means (e.g., by way of firmware) to perform one or more acts of methods 200, 400, and 500.
It should be further appreciated that the present disclosure may be embodied as methods, apparatus, systems, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for carrying out various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the C language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, the electronic circuitry that can execute the computer-readable program instructions implements aspects of the present disclosure by utilizing the state information of the computer-readable program instructions to personalize the electronic circuitry, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA).
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or step diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each step of the flowchart and/or step diagrams, and combinations of steps in the flowchart and/or step diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor in a voice interaction device, a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or step diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or step diagram step or steps.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or step diagram step or steps.
The flowcharts and step diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of apparatus, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or step diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two successive method steps may in fact be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each step of the step diagrams and/or flowchart illustration, and combinations of steps in the step diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen in order to best explain the principles of the embodiments, the practical application, or improvements made to the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
The above are merely alternative embodiments of the present disclosure and are not intended to limit the present disclosure, which may be modified and varied by those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present disclosure should be included in the protection scope of the present disclosure.