அறிவிப்புகளை அழுத்தவும்

சொடுக்கு செய்யக்கூடிய மற்றும் திறந்தகடையில் வெளியிடப்பட்ட ஒரு பயன்பாடு உங்களிடம் உள்ளது என்று வைத்துக் கொள்வோம். ஆனால் இப்போது நீங்கள் உங்கள் பயனர்களுக்கு புச் அறிவிப்புகளை அனுப்ப விரும்புகிறீர்கள். முதலாவதாக, இது எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் புரிந்து கொள்ள வேண்டும்:

../../_images/Diagram.png
  1. புச் அறிவிப்புகளைப் பயன்படுத்தும் ஒவ்வொரு பயன்பாடும் ஒரு தனித்துவமான கிள்ளாக்கைப் பெற்றுள்ளது. இந்த கிள்ளாக்கு பயனர், கருவி மற்றும் பயன்பாட்டை அடையாளம் காட்டுகிறது. கிள்ளாக்கு யுபிதுறைமுகங்கள் புச் சேவையால் உருவாக்கப்படுகிறது.

  2. புச் அறிவிப்பை அனுப்ப உங்களுக்கு கிள்ளாக்கு தேவைப்படும். எனவே பயன்பாடு அதன் கிள்ளாக்கை பயன்பாட்டு டெவலப்பரின் சேவையகத்திற்கு அனுப்புகிறது.

  3. கிள்ளாக்கு மூலம் நீங்கள் யுபிதுறைமுகங்கள் புச் சேவையகத்திற்கு ஒரு HTTP கோரிக்கையை அனுப்பலாம், இது பயனரின் கருவியின் அறிவிப்பை அனுப்பும்.

இந்த படிப்படியான படிப்பைப் பயிற்சி செய்வோம்.

Note

பின்வரும் எடுத்துக்காட்டில் நாங்கள் ஒரு சேவையகத்தை செயல்படுத்த மாட்டோம். உங்கள் பயன்பாட்டிற்கும் உங்கள் சேவையகத்திற்கும் இடையிலான தொடர்பு உங்களுடையது. தனியுரிமைக் கொள்கையை வழங்குவதன் மூலம் உங்கள் சேவையகத்துடனான தகவல்தொடர்பு குறித்து பயனருக்கு தெரிவிக்கவும்!

புச் அறிவிப்புகளுக்கு பயன்பாட்டை ஆயத்தம் செய்யுங்கள்

புச்க்ளியனை செயல்படுத்துகிறது

முதலில் நாம் கொள்கைக் குழுவை "புச்-நோடிஃபிகேசன்-கிளையன்ட்" சேர்க்க வேண்டும். உங்கள் Apparmor கோப்பு இப்படி இருக்கும்:

    {
        "policy_groups": [
            "networking",
            "push-notification-client"
        ],
        "policy_version": 16.04
    }

அடுத்த கட்டத்தில் நாம் QML பகுதிகளை மாற்ற வேண்டும். நாம் ஒரு புச்க்ளியண்ட் கூறுகளைச் சேர்க்க வேண்டும்:

//...

import Ubuntu.PushNotifications 0.1

//...

PushClient {
        id: pushClient
        appId: "myapp.yourname_hookname"
        onTokenChanged: console.log("👍", pushClient.token)
}

நீங்கள் சரியான பயன்பாட்டை அமைக்க வேண்டும்! உங்கள் மேனிஃபெச்ட் கோப்பில் உள்ள பயன்பாட்டு பெயர் myapp.yourname மற்றும் முதன்மையான ஊக்கின் பெயர் (.desktop கோப்பைக் கையாளும் ஒன்று) ஊக் பெயர் என்றால், appid: myapp.yourname_hookname. நாங்கள் இப்போது பயன்பாட்டைத் தொடங்கும்போது, அது ஒரு கிள்ளாக்கைப் பெற்று இந்த கிள்ளாக்கை பதிவுகளில் அச்சிடும். சொடுக்கு செய்யக்கூடிய பதிவுகள் மூலம் இந்த கிள்ளாக்கை முனையத்திலிருந்து நகலெடுக்க முடியும். ஆனால் பயன்பாடு இன்னும் புச் அறிவிப்பைப் பெற தயாராக இல்லை. இதற்காக நமக்கு புச்எல்பர் என்று ஒன்று தேவை!

புச்எல்பரை செயல்படுத்துகிறது

புச்எல்பர் என்பது பயன்பாட்டின் ஒரு பகுதியாகும், இது அனைத்து புச் அறிவிப்புகளையும் பெற்று அவற்றை கணினி அறிவிப்பு மையத்திற்கு அனுப்புவதற்கு முன்பு அவற்றை செயலாக்கும். இது ஒரு JSON-FILE ஐப் பெறும், மேலும் மற்றொரு JSON-FILE ஐ சரியான வடிவத்தில் வெளியிட வேண்டும். புச்எல்பர் பயன்பாட்டிலிருந்து பிரிக்கப்பட்டுள்ளது. எனவே எங்களுக்கு ஒரு புதிய கொக்கி தேவை. இது போல் தோன்றலாம்:

    {
        //...

        "title": "myapp",
        "hooks": {
            "myapp": {
                "apparmor": "myapp.apparmor",
                "desktop":  "myapp.desktop"
            },
            "push": {
                "apparmor": "push-apparmor.json",
                "push-helper": "push.json"
            }
        },

        //...
    }

எங்களுக்கு இப்போது வேறு APPARMOR கோப்பு மற்றும் வேறு இயங்கக்கூடிய கோப்பு தேவை என்பது தெளிவாக இருக்க வேண்டும். push-apparmor.json கோப்பில் கொள்கை குழு புச்-அறிவிப்பு-கிளையன்ட் மட்டுமே இருக்க வேண்டும், மேலும் இதுபோன்று இருக்க வேண்டும்:

{
    "template": "ubuntu-push-helper",
    "policy_groups": [
        "push-notification-client"
    ],
    "policy_version": 16.04
}

push.json என்பது இயங்கக்கூடிய கோப்பிற்கு திருப்பி விடுவதாகும்:

{
    "exec": "pushexec"
}

எங்கள் டுடோரியலில் நாம் பைத்தானைப் பயன்படுத்துவோம் புசெக்செக் என்ற பெயரிடப்பட்ட ஒரு இயங்கக்கூடியது, இது எதையும் மாற்றாமல் அறிவிப்பை அனுப்பும்:

#!/usr/bin/python3

import sys

f1, f2 = sys.argv[1:3]

open(f2, "w").write(open(f1).read())

We also need to add this new files to the CMakeLists.txt and make the pushexec executable:

[…]

install(FILES pushexec PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ DESTINATION ${DATA_DIR})
install(FILES push.json DESTINATION ${DATA_DIR})
install(FILES push-apparmor.json DESTINATION ${DATA_DIR})

[…]

இப்போது பயன்பாடு புச் அறிவிப்புகளைப் பெறவும் செயலாக்கவும் தயாராக உள்ளது!

புச் பணி பநிஇ ஐப் பயன்படுத்துதல்

எனவே இப்போது உங்களிடம் கிள்ளாக்கு உள்ளது மற்றும் பயன்பாடு புச் அறிவிப்புகளைப் பெறவும் செயலாக்கவும் தயாராக உள்ளது. ஒரு அறிவிப்பை அனுப்ப, நீங்கள் இந்த முகவரிக்கு ஒரு HTTP கோரிக்கையை அனுப்ப வேண்டும்: https://push.ubports.com/ உள்ளடக்க வகை பயன்பாடு/json ஆக இருக்க வேண்டும், அது சரியான வடிவத்தில் பொருந்த வேண்டும். சாவாச்கிரிப்டில் ஒரு எடுத்துக்காட்டு இப்படி இருக்கக்கூடும்:

var req = new XMLHttpRequest();
req.open("post", "https://push.ubports.com/notify", true);
req.setRequestHeader("Content-type", "application/json");
req.onreadystatechange = function() {
        if ( req.readyState === XMLHttpRequest.DONE ) {
                        console.log("✍ Answer:", req.responseText);
        }
}
var approxExpire = new Date ();
approxExpire.setUTCMinutes(approxExpire.getUTCMinutes()+10);
req.send(JSON.stringify({
        "appid" : "appname.yourname_hookname",
        "expire_on": approxExpire.toISOString(),
        "token": "aAnqwiFn§DF%2",
        "data": {
                "notification": {
                        "card": {
                                "icon": "notification",
                                "summary": "Push Notification",
                                "body": "Hello world",
                                "popup": true,
                                "persist": true
                        },
                "vibrate": true,
                "sound": true
                }
        }
}));

அறிவிப்பு பொருளை அழுத்தவும்

கூறளவு

வகை

விவரம்

Appid

சரம்

தேவை. அறிவிப்பைப் பெறும் பயன்பாட்டின் ஐடி,
கிளையன்ட் பக்க ஆவணத்தில் விவரிக்கப்பட்டுள்ளபடி.

காலாவதியாகும்

சரம்

தேவை. இந்த செய்திக்கான காலாவதி தேதி/நேரம், இல்

கிள்ளாக்கு

சரம்

தேவை. செய்தி இருக்கும் பயனர்+கருவியை அடையாளம் காணும் கிள்ளாக்கு
கிளையன்ட் பக்க ஆவணத்தில் விவரிக்கப்பட்டுள்ளபடி இயக்கப்பட்டது.

துடை_நிலுவையில்_உள்ளது

பூல்

முந்தைய நிலுவையில் உள்ள அனைத்து அறிவிப்புகளையும் நிராகரிக்கிறது. பொதுவாக பதிலளிக்கும்
"மிகவும் நிலுவையில் உள்ள" பிழையைப் பெறுதல். இயல்புநிலைகள் பொய்.

மாற்றியமைக்க_டாக்

சரம்

அதே குறிச்சொல்லுடன் நிலுவையில் உள்ள அறிவிப்பு இருந்தால், அதை முன் நீக்கு
இந்த புதிய ஒன்றை வரிசைப்படுத்துதல்.

தகவல்கள்

தகவல்கள்

ஒரு சாதொபொகு பொருள். தரவு புலத்தின் உள்ளடக்கங்கள் தன்னிச்சையானவை. நாம் பயன்படுத்தலாம்
பயன்பாட்டிற்கு எந்த தரவையும் அனுப்ப இது.

தகவல்கள்

கூறளவு

வகை

விவரம்

அறிவிப்பு

அறிவிப்பு

இந்த அறிவிப்பு எவ்வாறு வழங்கப்படும் என்பதை வரையறுக்கும் சாதொபொகு பொருள்.

செய்தி

பொருள்

ஒரு சாதொபொகு பொருள்-கடந்து செல்லப்படுகிறது-இது போபால் வழியாக பயன்பாட்டிற்கு.

அறிவிப்பு

கூறளவு

வகை

விவரம்

குறிச்சொல்

சரம்

புச் அறிவிப்பின் குறிச்சொல்.

ஒலி

பூல் அல்லது சரம்

இது ஒரு பூலியன் (முன்னரே தீர்மானிக்கப்பட்ட ஒலி) அல்லது
ஒலி கோப்பிற்கான பாதை. பயனர் அதை முடக்க முடியும், எனவே நம்ப வேண்டாம்
அதன் மீது பிரத்தியேகமாக. இயல்புநிலை காலியாக உள்ளது (ஒலி இல்லை). பாதை
உறவினர், மற்றும் (அ) பயன்பாட்டில் பார்க்கப்படும்
.local/share/<pkgname>, மற்றும் (b) நிலையான xdg dirs.

அதிர்வு

பூல் அல்லது அதிர்வு

அறிவிப்பில் ஒரு அதிர்வு புலம் இருக்கலாம், இதனால் ஆப்டிக் ஏற்படுகிறது
கருத்து, இது ஒரு பூலியன் ஆக இருக்கலாம் (உண்மையாக இருந்தால், அதிர்வு a
முன்னரே தீர்மானிக்கப்பட்ட வழி) அல்லது அதிர்வுறும் பொருள்.

சின்னம்-கவுண்டர்

சின்னம்-கவுண்டர்

ஒரு சாதொபொகு பொருள், இது சின்னத்தை எவ்வாறு காண்பிப்பது என்பதை வரையறுக்கிறது
கவுண்டர்.

அட்டை

அட்டை

அறிவிப்பு அட்டை பற்றிய தகவல்களைக் கொண்ட சாதொபொகு பொருள்.

அட்டை

கூறளவு

வகை

விவரம்

சுருக்கம்

சரம்

தேவை. ஒரு தலைப்பு. இது இருந்தால் அட்டை வழங்கப்படாது
இல்லை.

உடல்

சரம்

நீண்ட உரை, இயல்புநிலை காலியாக உள்ளது.

செயல்கள்

வரிசை

காலியாக இருந்தால் (இயல்புநிலை), ஒரு குமிழி அறிவிப்பு
சொடுக்கு செய்ய முடியாதது. நீங்கள் ஒரு முகவரி ஐ சேர்த்தால், குமிழி அறிவிப்புகள்
சொடுக்கு செய்யக்கூடியவை மற்றும் அந்த முகவரி ஐத் தொடங்கவும். இதற்கு ஒரு பயன்பாடு பயன்படுத்துகிறது
appid://com.ubuntu.developer.ralsina.hello போன்ற முகவரி
இது பயன்பாட்டிற்கு மாறும் அல்லது தொடங்கும்.

படவுரு

சரம்

நிகழ்வு தொடர்பான ஒரு படவுரு அறிவிக்கப்படுகிறது. இயல்புநிலை
வெற்று (ஐகான் இல்லை); பயன்பாடு தொடர்பான இரண்டாம் நிலை படவுரு
இந்த துறையைப் பொருட்படுத்தாமல், காண்பிக்கப்படும்.

நேர முத்திரை

முழு எண்

யுனிக்ச் சகாப்தத்திலிருந்து விநாடிகள், இப்போதைக்கு மட்டுமே பயன்படுத்தப்படுகின்றன.
பூச்சியம் அல்லது அமைக்கப்படாவிட்டால், தற்போதைய நேர முத்திரைக்கு இயல்புநிலை.

தொடர்ந்து

பூல்

அறிவிப்பு மையத்தில் காட்ட வேண்டுமா; இயல்புநிலைகள் பொய்.

பாப் அப்

பூல்

ஒரு குமிழியில் காட்ட வேண்டுமா. பயனர்கள் இதை முடக்கலாம், மேலும் முடியும்
அவற்றை எளிதில் இழக்கவும், எனவே அதை பிரத்தியேகமாக நம்ப வேண்டாம். இயல்புநிலை
பொய்.

அதிர்வு

கூறளவு

வகை

விவரம்

முறை

வரிசை

அதிர்வு முறையை விவரிக்கும் முழு எண்களின் பட்டியல் (மாற்றீட்டின் காலம்
அதிர்வு/இல்அதிர்வு நேரங்கள் இல்லை, மில்லி விநாடிகளில்).

மீண்டும்

முழு எண்

முறை மறுநிகழ்வு செய்யப்பட வேண்டும் (இயல்புநிலை 1, 0 ஆகும்
same as 1).

சின்னம்-கவுண்டர்

கூறளவு

வகை

விவரம்

எண்ணுங்கள்

முழு எண்

துவக்கத்தில் பயன்பாட்டின் ஐகானில் காண்பிக்கப்பட வேண்டிய எண்.

தெரியும்

பூல்

கவுண்டரைக் காட்ட உண்மையாக அமைக்கவும், அல்லது அதை மறைக்க தவறானது.

குறிப்புகள்

லோமிரி புச் பணி இன் ஆவணங்களைப் பார்க்கவும்.