Flutter WebView ನಲ್ಲಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಡಾರ್ಟ್ ಸಂವಹನಕ್ಕೆ ನಿರ್ವಹಿಸುವುದು
ಹೈಬ್ರಿಡ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಜೋಡಿಸಲು ವೆಬ್ವೀವ್ ಮೂಲಕ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಫ್ಲಟರ್ ಅನ್ನು ಸಂಯೋಜಿಸುವ ಅಗತ್ಯವಿರಬಹುದು. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡಾರ್ಟ್ಗೆ ಡೇಟಾ ಪ್ರಸರಣವು ಎರಡು ಪರಿಸರಗಳ ನಡುವೆ ಸುಗಮ ಸಂವಹನವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಒಂದು ಆಗಾಗ್ಗೆ ಕೆಲಸವಾಗಿದೆ.
JavaScript ನಿಂದ Dart ಗೆ ಹಲವಾರು ನಿಯತಾಂಕಗಳನ್ನು ವರ್ಗಾಯಿಸಲು Flutter WebView ಪ್ಲಗಿನ್ನ JavaScript ಚಾನಲ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಈ ಪೋಸ್ಟ್ ವಿವರಿಸುತ್ತದೆ. ನಾವು ನಿರ್ದಿಷ್ಟವಾಗಿ ಎರಡು ವಾದಗಳು ಹೇಳುವ ಪರಿಸ್ಥಿತಿಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತೇವೆ x ಮತ್ತು ವೈ, ಅನ್ನು ಬಳಸಿಕೊಂಡು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫಂಕ್ಷನ್ ಮೂಲಕ ಡಾರ್ಟ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಸೆಟ್ ಸ್ಥಾನ ಚಾನಲ್.
ಆದಾಗ್ಯೂ ಬಳಸಿಕೊಂಡು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಬಹುದು ಪೋಸ್ಟ್ ಮೆಸೇಜ್(), ಸಂವಹನವು ಉದ್ದೇಶಿಸಿದಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಖಾತರಿಪಡಿಸಲು ಡಾರ್ಟ್ನಲ್ಲಿ ಈ ಸಂದೇಶಗಳನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದು ಕಡ್ಡಾಯವಾಗಿದೆ. ಪರಿಣಾಮಕಾರಿ ದತ್ತಾಂಶ ಸಂಸ್ಕರಣೆಗೆ ಡಾರ್ಟ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ತಿಳಿದುಕೊಳ್ಳುವ ಅಗತ್ಯವಿದೆ ಆನ್ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಇದನ್ನು ಮಾಡಲು ಕಾರ್ಯ.
ನೀವು ಉತ್ತರಗಳಿಗಾಗಿ ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಆದರೆ ಹೆಚ್ಚಿನದನ್ನು ಕಂಡುಹಿಡಿಯದಿದ್ದರೆ ನೀವು ಒಬ್ಬಂಟಿಯಾಗಿರುವುದಿಲ್ಲ. ನಾವು ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗೆ ಹೋಗುತ್ತೇವೆ ಮತ್ತು ಈ ಲೇಖನದಲ್ಲಿ ಈ ಸಂವಹನ ಪೈಪ್ಲೈನ್ ಅನ್ನು ನಿರ್ಮಿಸಲು ಹಂತ-ಹಂತದ ವಿಧಾನವನ್ನು ನಿಮಗೆ ನೀಡುತ್ತೇವೆ.
ಆಜ್ಞೆ | ಬಳಕೆಯ ಉದಾಹರಣೆ |
---|---|
postMessage() | ಈ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ವಿಧಾನದ ಉದ್ದೇಶವು ಹಲವಾರು ಸಂದರ್ಭಗಳ ನಡುವೆ ಸಂದೇಶಗಳನ್ನು ವರ್ಗಾಯಿಸುವುದು. ಇಲ್ಲಿ, ಮೂಲಕ ಡೇಟಾವನ್ನು ಸಾಗಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ವೆಬ್ ವಿಷಯದಿಂದ Flutter WebView ನ ಡಾರ್ಟ್ ಬದಿಗೆ (ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್). |
jsonDecode() | JSON ನೊಂದಿಗೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುವ ಮತ್ತು ಅದನ್ನು ಡಾರ್ಟ್ ಮ್ಯಾಪ್ ಅಥವಾ ಪಟ್ಟಿಗೆ ಪರಿವರ್ತಿಸುವ ಡಾರ್ಟ್ ಫಂಕ್ಷನ್ ಡಾರ್ಟ್:ಕನ್ವರ್ಟ್ ಪ್ಯಾಕೇಜ್ನಲ್ಲಿ ಕಂಡುಬರುತ್ತದೆ. ನಂತಹ ಡೇಟಾವನ್ನು ಹಿಂಪಡೆಯಲು x ಮತ್ತು ವೈ, ಇದು ಡಿಕೋಡ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ JSON ಸಂದೇಶ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ. |
JavascriptChannel | ಇದು ವೆಬ್ವೀವ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾದ ಡಾರ್ಟ್ ಕೋಡ್ ಮತ್ತು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನಡುವಿನ ಸಂವಹನವನ್ನು ಸುಗಮಗೊಳಿಸುವ ಫ್ಲಟರ್ ವರ್ಗವಾಗಿದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕಡೆಯಿಂದ ಸಂದೇಶಗಳು ಬಂದಾಗ, ದಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ಅವುಗಳನ್ನು ಕೇಳುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಡಾರ್ಟ್ನಲ್ಲಿ ನಿರ್ವಹಿಸುತ್ತದೆ. |
onMessageReceived | ನಲ್ಲಿ ಟ್ರಿಗರ್ ಮಾಡಲಾದ ಕಾಲ್ಬ್ಯಾಕ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ. ಇದು ಒಳಬರುವ ಸಂದೇಶವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು JSON ಅನ್ನು ಪಾರ್ಸಿಂಗ್ ಮಾಡುವುದು ಅಥವಾ ಅದನ್ನು ನೀಡಿದ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಬಳಸುವುದು ಸೇರಿದಂತೆ ಡೇಟಾ ಸಂಸ್ಕರಣಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. |
navigationDelegate | ಅನುಮತಿಸುವ ಡಾರ್ಟ್ ಆಸ್ತಿ ವೆಬ್ ವೀಕ್ಷಣೆ ನ್ಯಾವಿಗೇಶನ್ಗೆ ಸಂಬಂಧಿಸಿದ ಈವೆಂಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸಲು ಮತ್ತು ಪ್ರತಿಬಂಧಿಸಲು ವಿಜೆಟ್. URL ಬದಲಾವಣೆಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡಲು ಇದು ನಿಮ್ಮನ್ನು ಶಕ್ತಗೊಳಿಸುತ್ತದೆ (ಉದಾ., ಕಸ್ಟಮ್ URL ಸ್ಕೀಮ್ಗಳೊಂದಿಗೆ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಕಳುಹಿಸುವಾಗ). |
Uri.queryParameters | ಡಾರ್ಟ್ನಲ್ಲಿ, ಈ ಆಸ್ತಿಯು URL ನಿಂದ ಪ್ರಶ್ನೆ ನಿಯತಾಂಕಗಳನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ. URL ನಲ್ಲಿ ಪ್ಯಾರಾಮೀಟರ್ಗಳಂತೆ ಒದಗಿಸಲಾದ ಡೇಟಾವನ್ನು ನೀವು ಪ್ರವೇಶಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ x ಮತ್ತು ವೈ, ನೀವು ಕಸ್ಟಮ್ URL ಸ್ಕೀಮ್ ಅನ್ನು ಬಳಸುವಾಗ. |
NavigationDecision.prevent | ರಿಟರ್ನ್ ಮೌಲ್ಯ ಸಂಚರಣೆ ಪ್ರತಿನಿಧಿ WebView ಅನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಲು ಬಳಸುತ್ತದೆ. ವಾದಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಮತ್ತು ಪ್ರಸ್ತುತ ಪುಟವನ್ನು ಬಿಡದೆಯೇ URL ಬದಲಾವಣೆಯನ್ನು ಪ್ರತಿಬಂಧಿಸುವಾಗ, ಇದು ಸಹಾಯಕವಾಗಿರುತ್ತದೆ. |
JavascriptMessage | ಕಳುಹಿಸಲಾದ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ಡಾರ್ಟ್ ವರ್ಗ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡಾರ್ಟ್ಗೆ. ಸಂದೇಶದ ಸ್ಟ್ರಿಂಗ್ ಅಲ್ಲಿ ಒಳಗೊಂಡಿರುತ್ತದೆ, ಅಗತ್ಯವಿರುವಂತೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಅಥವಾ ಡಿಕೋಡಿಂಗ್ಗೆ ಸಿದ್ಧವಾಗಿದೆ. |
WebView | ದಿ ವೆಬ್ ವೀಕ್ಷಣೆ ಫ್ಲಟರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿನ ವಿಜೆಟ್ ಅನ್ನು ವೆಬ್ ವಿಷಯವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ, ಸ್ಥಳೀಯ ಮತ್ತು ವೆಬ್ ಕೋಡ್ ನಡುವೆ ದ್ವಿಮುಖ ಸಂವಹನವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
Flutter WebView ನಲ್ಲಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಡಾರ್ಟ್ ಸಂವಹನವನ್ನು ಸಂಯೋಜಿಸುವುದು
ನಮ್ಮ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಪರಿಹಾರವು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು ತೋರಿಸುತ್ತದೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ನಿಂದ ಹಲವಾರು ವಾದಗಳನ್ನು ರವಾನಿಸಲು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ Flutter's WebView ಮೂಲಕ ಡಾರ್ಟ್ಗೆ. WebView ನಲ್ಲಿ ಚಲಿಸುವ Dart ಕೋಡ್ ಮತ್ತು JavaScript ನಡುವಿನ ಸಂವಹನಕ್ಕಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ ಪೈಪ್ಲೈನ್ ಅನ್ನು ರಚಿಸುವುದು ಪ್ರಾಥಮಿಕ ಗುರಿಯಾಗಿದೆ. ದಿ ಪೋಸ್ಟ್ ಮೆಸೇಜ್() ವಿಧಾನವನ್ನು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫಂಕ್ಷನ್ನಿಂದ ಎರಡು ನಿಯತಾಂಕಗಳನ್ನು (x ಮತ್ತು y) ರವಾನಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ, ಇವುಗಳನ್ನು ಆನ್ಮೆಸೇಜ್ ರಿಸೀವ್ಡ್ ಕಾಲ್ಬ್ಯಾಕ್ ಮೂಲಕ ಡಾರ್ಟ್ ಸ್ವೀಕರಿಸುತ್ತದೆ. ಈ ಸಂರಚನೆಯೊಂದಿಗೆ, ಪ್ರಮುಖ ಮಾಹಿತಿಯನ್ನು ವೆಬ್ ವಿಷಯದಿಂದ ಸ್ಥಳೀಯ ಡಾರ್ಟ್ ಕೋಡ್ಗೆ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಸಂವಹನ ಮಾಡಬಹುದು.
ಅನ್ನು ಬಳಸುವುದು jsonDecode() ಕಾರ್ಯ, ನಾವು ಸ್ವೀಕರಿಸಿದ ಸಂದೇಶವನ್ನು ಡಾರ್ಟ್ ಬದಿಯಲ್ಲಿ ಡಿಕೋಡ್ ಮಾಡುತ್ತೇವೆ. JavaScript ನಿಂದ JSON ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸುವ ಮೂಲಕ ಹಲವಾರು ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಸಂಘಟಿತ ರೀತಿಯಲ್ಲಿ ಕಳುಹಿಸಬಹುದೆಂದು ನಾವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುತ್ತೇವೆ. ಡಿಕೋಡಿಂಗ್ ಮಾಡಿದ ನಂತರ, ಡಾರ್ಟ್ ವೈಯಕ್ತಿಕ ಮೌಲ್ಯಗಳನ್ನು (x ಮತ್ತು y) ಹಿಂಪಡೆಯಲು ಮತ್ತು ಯಾವುದೇ ಉದ್ದೇಶಕ್ಕಾಗಿ ಅವುಗಳನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಇದು ರೆಕಾರ್ಡಿಂಗ್ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅಂಶಗಳನ್ನು ಬದಲಾಯಿಸುವುದು ಮತ್ತು ಪಡೆದ ಮೌಲ್ಯಗಳನ್ನು ಅವಲಂಬಿಸಿರುವ ಇತರ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡಾರ್ಟ್ಗೆ ಸಂಕೀರ್ಣ ಡೇಟಾ ರಚನೆಗಳನ್ನು ಕಳುಹಿಸುವಾಗ ಈ ವಿಧಾನವು ಕಡಿಮೆ ಓವರ್ಹೆಡ್ ಅನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
ಸಂದೇಶಗಳನ್ನು ನೇರವಾಗಿ ನಿರ್ವಹಿಸುವುದರ ಹೊರತಾಗಿ, ಅನನ್ಯ URL ಸ್ಕೀಮ್ಗಳನ್ನು ಬಳಸುವುದನ್ನು ಒಳಗೊಂಡಿರುವ ವಿಭಿನ್ನ ವಿಧಾನವನ್ನು ಸಹ ನಾವು ಪರಿಶೀಲಿಸಿದ್ದೇವೆ. URL ಅನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ನಾವು ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸಬಹುದು window.location.href JavaScript ನಲ್ಲಿ. ಡಾರ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಡೇಟಾವನ್ನು ಪ್ರತಿಬಂಧಿಸಬಹುದು ಸಂಚರಣೆ ಪ್ರತಿನಿಧಿ. ಬಳಸುವಾಗ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ಕಾರ್ಯಸಾಧ್ಯವಾಗದಿರಬಹುದು ಅಥವಾ URL-ಆಧಾರಿತ ಸಂವಹನವು ಪ್ರೋಗ್ರಾಂನ ವಿನ್ಯಾಸವನ್ನು ನೀಡಿದಾಗ ಹೆಚ್ಚು ಅರ್ಥಪೂರ್ಣವಾದಾಗ, ಈ ವಿಧಾನವು ಉಪಯುಕ್ತವಾಗಿರುತ್ತದೆ. ಅದರ ನಂತರ, ಡಾರ್ಟ್ URL ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಳಸುತ್ತದೆ Uri.queryParameters x ಮತ್ತು y ನಂತಹ ನಿಯತಾಂಕಗಳನ್ನು ಹೊರತೆಗೆಯಲು ಕಾರ್ಯ. ಡಾರ್ಟ್ ಮತ್ತು ವೆಬ್ ವಿಷಯದ ನಡುವೆ ಹಲವಾರು ಸಂವಹನ ಕಾರ್ಯವಿಧಾನಗಳು ಸಾಧ್ಯ ಎಂದು ಇದು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
ಎಲ್ಲಾ ವಿಧಾನಗಳಲ್ಲಿ, ವಿಶೇಷವಾಗಿ ಒಳಬರುವ ಸಂವಹನಗಳನ್ನು ಸ್ವೀಕರಿಸುವಾಗ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಸುರಕ್ಷತೆಗೆ ಹೆಚ್ಚಿನ ಆದ್ಯತೆಯನ್ನು ನೀಡಲಾಗುತ್ತದೆ. ಸಂದೇಶ ರವಾನೆಗಾಗಿ JSON ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ ನಾವು ಪ್ರಕ್ರಿಯೆಯ ಸುರಕ್ಷತೆ ಮತ್ತು ಓದುವಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತೇವೆ, ಇದು ಡೇಟಾ ಕುಶಲತೆಯನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ. ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳು ವಿವಿಧ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಉದ್ದೇಶಿಸಿದಂತೆ ಕಾರ್ಯಚಟುವಟಿಕೆಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ಖಾತರಿಪಡಿಸುತ್ತದೆ. ನಯವಾದ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹ, ದಿ ವೆಬ್ ವೀಕ್ಷಣೆ ಏಕೀಕರಣವು ವೆಬ್ ತಂತ್ರಜ್ಞಾನಗಳು ಮತ್ತು ಫ್ಲಟರ್ನ ಸ್ಥಳೀಯ ಪರಿಸರದ ನಡುವೆ ಬಲವಾದ ಸಂಪರ್ಕವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
Flutter WebView ಮೂಲಕ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡಾರ್ಟ್ಗೆ ಬಹು ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸುವುದು
ಈ ಪರಿಹಾರವು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಡಾರ್ಟ್ಗೆ ಹಲವಾರು ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು (x, y) ರವಾನಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಪ್ರಕಾರ ಪರಿಗಣಿಸುತ್ತದೆ. ಇದು Flutter WebView ಪ್ಲಗಿನ್ ಮತ್ತು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನಲ್ ಅನ್ನು ನಿಯಂತ್ರಿಸುವ ಮೂಲಕ ಇದನ್ನು ಮಾಡುತ್ತದೆ.
// JavaScript code to send two parameters to Dart
function sendPosition(x, y) {
setPosition.postMessage(JSON.stringify({ x: x, y: y }));
}
// Example of calling the function
sendPosition(100, 200);
WebView ನ JavaScript ಚಾನೆಲ್ ಮೂಲಕ ಡಾರ್ಟ್ನಲ್ಲಿ ಸ್ವೀಕರಿಸಿದ ನಿಯತಾಂಕಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು
JSON ಫಾರ್ಮ್ಯಾಟ್ನಲ್ಲಿ ಡೀಕೋಡ್ ಮಾಡುವ ಮೂಲಕ WebView ನ JavaScript ಚಾನಲ್ ಮೂಲಕ ಸ್ವೀಕರಿಸಿದ ಸಂದೇಶವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದು ಈ ಡಾರ್ಟ್ ಪರಿಹಾರದ ಪ್ರಾಥಮಿಕ ಗುರಿಯಾಗಿದೆ.
// Dart code: Set up WebView and JavaScript channel
WebView(
initialUrl: 'https://your-webpage.com',
javascriptChannels: {
JavascriptChannel(
name: 'setPosition',
onMessageReceived: (JavascriptMessage message) {
// Decode the JSON message
final data = jsonDecode(message.message);
final x = data['x'];
final y = data['y'];
// Handle the x and y values
print('Position received: x=$x, y=$y');
// Add your logic here
},
),
},
);
ಡಾರ್ಟ್ಗಾಗಿ ಯುನಿಟ್ ಟೆಸ್ಟ್: ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ
ಪರಿಹಾರದ ಘಟಕ ಪರೀಕ್ಷೆಯ ಡಾರ್ಟ್ ಸೈಡ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಸಂದೇಶವನ್ನು ಸರಿಯಾಗಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
import 'package:flutter_test/flutter_test.dart';
import 'dart:convert';
void main() {
test('Test JavaScript message parsing', () {
const message = '{"x": 100, "y": 200}';
final data = jsonDecode(message);
expect(data['x'], 100);
expect(data['y'], 200);
});
}
ಪರ್ಯಾಯ ವಿಧಾನ: ಪ್ಯಾರಾಮೀಟರ್ ಪಾಸ್ಗಾಗಿ URL ಸ್ಕೀಮ್ಗಳನ್ನು ಬಳಸುವುದು
WebView ನ URL ಬದಲಾವಣೆಯ ಈವೆಂಟ್ನಲ್ಲಿ Dart ನಲ್ಲಿ ಡಿಕೋಡ್ ಮಾಡಲಾದ JavaScript ನಲ್ಲಿ ಕಸ್ಟಮ್ URL ಸ್ಕೀಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಹೇಗೆ ರವಾನಿಸುವುದು ಎಂಬುದನ್ನು ಈ ವಿಧಾನವು ತೋರಿಸುತ್ತದೆ.
// JavaScript code: Send parameters via custom URL scheme
function sendPositionViaUrl(x, y) {
window.location.href = 'flutter-webview://setPosition?x=' + x + '&y=' + y;
}
// Example of calling the function
sendPositionViaUrl(100, 200);
ಡಾರ್ಟ್: WebView ನಲ್ಲಿ URL ಬದಲಾವಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು
URL ಪ್ರೋಟೋಕಾಲ್ ಮೂಲಕ ನೀಡಲಾದ ನಿಯತಾಂಕಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು, ಈ Dart ಪರಿಹಾರವು WebView ನಲ್ಲಿ URL ಬದಲಾವಣೆಗಳನ್ನು ಪ್ರತಿಬಂಧಿಸುತ್ತದೆ.
WebView(
initialUrl: 'https://your-webpage.com',
navigationDelegate: (NavigationRequest request) {
if (request.url.startsWith('flutter-webview://setPosition')) {
final uri = Uri.parse(request.url);
final x = uri.queryParameters['x'];
final y = uri.queryParameters['y'];
print('Position received via URL: x=$x, y=$y');
// Add your logic here
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
);
Flutter WebView ನಲ್ಲಿ ಪ್ಯಾರಾಮೀಟರ್ ಪಾಸ್ ಮಾಡುವ ತಂತ್ರಗಳನ್ನು ಅನ್ವೇಷಿಸಲಾಗುತ್ತಿದೆ
ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಡೇಟಾ ರಚನೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಡಾರ್ಟ್ ನಡುವೆ ಫ್ಲಟರ್ ವೆಬ್ವೀವ್ ಮೂಲಕ ಹಾದುಹೋಗುವ ಪ್ಯಾರಾಮೀಟರ್ನ ಪ್ರಮುಖ ಭಾಗವಾಗಿದೆ. ನಮ್ಮ ಗಮನವು ಮೂಲಭೂತವಾಗಿ ಉತ್ತೀರ್ಣರಾಗಿದ್ದರೂ x ಮತ್ತು ವೈ ವಾದಗಳು, ನೀವು ಆಬ್ಜೆಕ್ಟ್, ಅರೇ ಅಥವಾ ಹಲವಾರು ನೆಸ್ಟೆಡ್ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಸಹ ರವಾನಿಸಬೇಕಾದ ಸಂದರ್ಭಗಳು ಇರಬಹುದು. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿ ಸಂಕೀರ್ಣ ಡೇಟಾ ರಚನೆಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಪರಿವರ್ತಿಸಬಹುದು JSON.stringify() ವಿಧಾನ, ನಂತರ ಅದನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ವರ್ಗಾಯಿಸಬಹುದು postMessage() ವಿಧಾನ. ಅದರ ನಂತರ, ಡಾರ್ಟ್ ಬಳಸಿಕೊಳ್ಳಬಹುದು jsonDecode() ಆರಂಭಿಕ ರಚನೆಯನ್ನು ಪುನಃ ಜೋಡಿಸಲು ಇದರಿಂದ ಅದನ್ನು ಸಂಸ್ಕರಿಸಬಹುದು.
ಸಂದೇಶ ಫಾರ್ವರ್ಡ್ ದೋಷ ನಿರ್ವಹಣೆ ಮತ್ತೊಂದು ಪ್ರಾಯೋಗಿಕ ವಿಧಾನವಾಗಿದೆ. ಎರಡು ಭಾಷೆಗಳ ನಡುವೆ ಪ್ರಮುಖ ಡೇಟಾವನ್ನು ಚಲಿಸುವಾಗ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಡಾರ್ಟ್ ಪರಿಸರದಲ್ಲಿ ಡೇಟಾವನ್ನು ಮೌಲ್ಯೀಕರಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಆಹ್ವಾನಿಸುವ ಮೊದಲು ಚೆಕ್ಗಳನ್ನು ಹಾಕುವ ಮೂಲಕ ದೋಷಪೂರಿತ ಡೇಟಾವನ್ನು ವಿತರಿಸುವುದನ್ನು ತಪ್ಪಿಸಬಹುದು postMessage() ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬದಿಯಲ್ಲಿ. ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಡೇಟಾವು ಡಾರ್ಟ್ ಬದಿಯಲ್ಲಿ ನಿರೀಕ್ಷಿತ ಕೀಗಳು ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿದೆಯೇ ಎಂಬುದನ್ನು ಮೌಲ್ಯೀಕರಿಸುವ ಮೂಲಕ ನೀವು ಪರಿಶೀಲಿಸಬಹುದು. ಪರಿಣಾಮಕಾರಿ ಸಂವಹನವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದರ ಜೊತೆಗೆ, ಇದು ತಪ್ಪುಗಳು ಅಥವಾ ಭ್ರಷ್ಟ ಡೇಟಾದ ವಿರುದ್ಧ ರಕ್ಷಿಸುತ್ತದೆ.
ಹೆಚ್ಚುವರಿಯಾಗಿ, WebView Flutter ನಲ್ಲಿ ನೀವು ವೆಬ್ಪುಟಕ್ಕೆ ಕಸ್ಟಮ್ JavaScript ಅನ್ನು ಅನ್ವಯಿಸಲು ಅನುಮತಿಸುವ ಹೆಚ್ಚುವರಿ ಕಾರ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಡಾರ್ಟ್ ಬದಿಯಿಂದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ದಿನಚರಿಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಪ್ರಚೋದಿಸಬಹುದು evaluateJavascript ತಂತ್ರ. ನಿಮ್ಮ ಫ್ಲಟರ್ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ವೆಬ್ ವಿಷಯಕ್ಕೆ ಕಳುಹಿಸಲು ಆಜ್ಞೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಇದು ಬಹುಮುಖತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ದ್ವಿಮುಖ ಸಂವಹನ ಚಾನಲ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಎರಡು ಪದರಗಳ ನಡುವೆ ನಿರಂತರ ಡೇಟಾ ವಿನಿಮಯದ ಅಗತ್ಯವಿದ್ದಾಗ, ಈ ತಂತ್ರವು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.
Flutter WebView ನಲ್ಲಿ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ಹಾದುಹೋಗುವ ಕುರಿತು ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು
- ನಾನು JavaScript ನಿಂದ Dart ಗೆ ಸಂಕೀರ್ಣ ವಸ್ತುಗಳನ್ನು ಹೇಗೆ ಕಳುಹಿಸುವುದು?
- ಡಾರ್ಟ್ ಬದಿಯಲ್ಲಿರುವ ಸಂಕೀರ್ಣ ವಸ್ತುಗಳನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು, ಬಳಸಿ jsonDecode() ಅವುಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್ಗೆ ಪರಿವರ್ತಿಸಿದ ನಂತರ JSON.stringify() ಮತ್ತು postMessage().
- ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸುವ ಮೊದಲು ಅದನ್ನು ಹೇಗೆ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಪರಿಶೀಲಿಸಬಹುದು?
- ಇದರೊಂದಿಗೆ ಡೇಟಾವನ್ನು ರವಾನಿಸುವ ಮೊದಲು postMessage(), ಇದು ಸರಿಯಾಗಿ ರಚನೆಯಾಗಿದೆಯೇ ಮತ್ತು JavaScript ಭಾಗದಲ್ಲಿ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಕ್ಷೇತ್ರಗಳನ್ನು ಹೊಂದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಸಂವಹನವನ್ನು ಡಿಕೋಡ್ ಮಾಡಿದ ನಂತರ, ಡಾರ್ಟ್ ಬದಿಯಲ್ಲಿ ಕೀಗಳು ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಿಂದ ಎರಡು ಪ್ಯಾರಾಮೀಟರ್ಗಳಿಗಿಂತ ಹೆಚ್ಚು ಡಾರ್ಟ್ ಕಳುಹಿಸಲು ಸಾಧ್ಯವೇ?
- ಹೌದು, ನೀವು ಬಳಸಬಹುದು JSON.stringify() JSON ಆಬ್ಜೆಕ್ಟ್ ಆಗಿ ಅನೇಕ ನಿಯತಾಂಕಗಳನ್ನು ರವಾನಿಸಲು, ಮತ್ತು jsonDecode() ಅವುಗಳನ್ನು ಡಾರ್ಟ್ನಲ್ಲಿ ನಿರ್ವಹಿಸಲು.
- WebView ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನಲ್ ಅನ್ನು ಬೆಂಬಲಿಸದಿದ್ದರೆ ಏನು ಮಾಡಬೇಕು?
- JavaScript ಚಾನಲ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ನೀವು ಕಸ್ಟಮ್ URL ಸ್ಕೀಮ್ ಅನ್ನು ಬಳಸಬಹುದು ಮತ್ತು ಬಳಸಬಹುದು navigationDelegate URL ಅನ್ನು ಪ್ರತಿಬಂಧಿಸಲು ಡಾರ್ಟ್ನಲ್ಲಿ.
- ಪ್ಯಾರಾಮೀಟರ್ ಹಾದುಹೋಗುವಾಗ ದೋಷಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು?
- ಡಾರ್ಟ್ ಮತ್ತು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಇರಿಸಿ. ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ postMessage() ಪರಿಶೀಲಿಸಲಾಗಿದೆ, ಮತ್ತು ಬಳಸಿ try-catch ಡಿಕೋಡಿಂಗ್ ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಡಾರ್ಟ್ನಲ್ಲಿ ನಿರ್ಬಂಧಿಸುತ್ತದೆ.
Flutter WebView ಸಂವಹನದ ಅಂತಿಮ ಆಲೋಚನೆಗಳು
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಡಾರ್ಟ್ ನಡುವೆ ವಾದಗಳನ್ನು ಕಳುಹಿಸುವ ಸಾಮರ್ಥ್ಯವು ಆನ್ಲೈನ್ ವಿಷಯ ಮತ್ತು ಫ್ಲಟರ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಹೇಗೆ ಸಂವಹನ ನಡೆಸುತ್ತವೆ ಎಂಬುದನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಡೇಟಾ ಸಮಗ್ರತೆ ಮತ್ತು ಉಪಯುಕ್ತತೆ ಯಾವಾಗ ಖಾತರಿಪಡಿಸುತ್ತದೆ ಪೋಸ್ಟ್ ಮೆಸೇಜ್() ಡಾರ್ಟ್ ಜೊತೆಯಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ jsonDecode() ಕಾರ್ಯ.
URL ಸ್ಕೀಮ್ಗಳು ಮತ್ತು ನೇರ ಸಂದೇಶ ನಿರ್ವಹಣೆಯಂತಹ ಹಲವಾರು ತಂತ್ರಗಳನ್ನು ತನಿಖೆ ಮಾಡುವ ಮೂಲಕ ಡೆವಲಪರ್ಗಳು ತಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ಗೆ ಉತ್ತಮವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಸರಿಯಾದ ಮೌಲ್ಯೀಕರಣ ಮತ್ತು ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಈ ಸಂವಹನ ವ್ಯವಸ್ಥೆಗಳ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
Flutter WebView ನಲ್ಲಿ ಡಾರ್ಟ್ ಸಂವಹನಕ್ಕೆ JavaScript ಗಾಗಿ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳು
- ಸ್ಥಾಪಿಸುವ ಬಗ್ಗೆ ವಿವರಿಸುತ್ತದೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಚಾನೆಲ್ಗಳು ಮತ್ತು ಅವರು ಹೇಗೆ ಸಂಯೋಜಿಸುತ್ತಾರೆ Flutter WebView ಅಪ್ಲಿಕೇಶನ್ಗಳು. Flutter WebView ಡಾಕ್ಯುಮೆಂಟೇಶನ್
- ಒಳನೋಟಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಪೋಸ್ಟ್ ಮೆಸೇಜ್() ಕ್ರಾಸ್-ಫ್ರೇಮ್ ಸಂದೇಶಕ್ಕಾಗಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ವಿಧಾನ ಮತ್ತು ಅದರ ಬಳಕೆ. MDN ವೆಬ್ ಡಾಕ್ಸ್ - ಪೋಸ್ಟ್ ಮೆಸೇಜ್()
- JavaScript ನಿಂದ ಸಮರ್ಥ ಡೇಟಾ ನಿರ್ವಹಣೆಗಾಗಿ JSON ಡಿಕೋಡಿಂಗ್ ಮತ್ತು ಪಾರ್ಸಿಂಗ್ ಅನ್ನು Dart ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ. ಡಾರ್ಟ್ jsonDecode() ಡಾಕ್ಯುಮೆಂಟೇಶನ್
- ಬಳಸಿ ಆವರಿಸುತ್ತದೆ ಸಂಚರಣೆ ಪ್ರತಿನಿಧಿ WebView ಒಳಗೆ URL ಪ್ರತಿಬಂಧಕ್ಕಾಗಿ. Flutter WebView NavigationDelegate