国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uni-app使用plus本地推送通知欄信息,不使用第三方個(gè)推實(shí)現(xiàn)消息在線統(tǒng)一推送、消息通知(MQTT、WebSocket、setInterval定時(shí)器)

這篇具有很好參考價(jià)值的文章主要介紹了uni-app使用plus本地推送通知欄信息,不使用第三方個(gè)推實(shí)現(xiàn)消息在線統(tǒng)一推送、消息通知(MQTT、WebSocket、setInterval定時(shí)器)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  1. plus.push.createMessage()
  • 因項(xiàng)目一直是運(yùn)行在內(nèi)網(wǎng),所以不支持使用uni-push等運(yùn)行在公網(wǎng)的第三方個(gè)推渠道。
    那就只能使用plus.push.createMessage(),示例代碼如下:
let content = "您有一條新的消息~";
let options = {
	"cover" : false,
	"when" : new Date(),
	'title' : "通知消息"
};
let body = {
	'id' : 'id',
	'key': "key"
}
let payload = JSON.stringify(body);
plus.push.createMessage(content, payload, options);

參數(shù)解釋:
content: ( String 類型) 必選,消息顯示的內(nèi)容,在系統(tǒng)通知中心中顯示的文本內(nèi)容。
payload: ( String 類型 ) 可選,消息承載的數(shù)據(jù),可根據(jù)業(yè)務(wù)邏輯自定義數(shù)據(jù)格式。
option: ( MessageOptions ) 可選 創(chuàng)建消息的額外參數(shù),參考MessageOptions。
MessageOptions:JSON對(duì)象,獲客戶端創(chuàng)建本地消息的參數(shù):
① title: (String 類型 )推送消息的標(biāo)題。
② sound: (String 類型 )推送消息的提示音,顯示消息時(shí)的播放的提示音,可取值: “system”-表示使用系統(tǒng)通知提示音; “none”-表示不使用提示音; 默認(rèn)值為“system”。
③ cover: (Boolean 類型 )是否覆蓋上一次提示的消息??扇≈祎rue或false,true為覆蓋,false不覆蓋
④ when: (Date 類型 )消息上顯示的提示時(shí)間。
⑤ delay: (Number 類型 )提示消息延遲顯示的時(shí)間。當(dāng)設(shè)備接收到推送消息后,可不立即顯示,而是延遲一段時(shí)間顯示,延遲時(shí)間單位為s,默認(rèn)為0s,立即顯示。

  • 實(shí)際開發(fā)過程中,使用MQTT或者WebSocket輪詢消息通知接口,拿到數(shù)據(jù),調(diào)用plus.push.createMessage()方法。
  1. plus.push.getAllMessage()
  • 獲取所有信息
getAllMessage(){
 	return plus.push.getAllMessage();
}
  1. 獲取客戶端標(biāo)識(shí)
plus.push.getClientInfo()
  1. 捕獲點(diǎn)擊的通知欄消息內(nèi)容
plus.push.addEventListener( "click", function(msg){
	console.log( "您點(diǎn)擊了: " + JSON.stringify(msg) );
	// TODO...
}, false); 
  1. 清空系統(tǒng)消息中心所有的推送消息。
plus.push.clear();
  1. 刪除系統(tǒng)消息中心指定的推送消息,可通過getAllMessage方法獲取所有的消息后進(jìn)行操作。

參數(shù):message: ( PushMessage ) 必填,要?jiǎng)h除的消息對(duì)象,可通過getAllMessage()方法來獲取消息。

plus.push.remove( message );
  1. 判斷客戶端是否開啟通知權(quán)限
enablPermission(){
	let main = plus.android.runtimeMainActivity();
	let pkName = main.getPackageName();
	let uid = main.getApplicationInfo().plusGetAttribute("uid");
	let NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");
	//android.support.v4升級(jí)為androidx
	if (NotificationManagerCompat == null) {
		NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");
	}
	let areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();
	// 未開通‘允許通知'權(quán)限,則彈窗提醒開通,并點(diǎn)擊確認(rèn)后,跳轉(zhuǎn)到系統(tǒng)設(shè)置頁面進(jìn)行設(shè)置  
	if (!areNotificationsEnabled) {
		uni.showModal({
			title: '通知權(quán)限開啟提醒',
			content: '您還沒有開啟通知權(quán)限,無法接受到消息通知,請(qǐng)前往設(shè)置!',
			showCancel: false,
			confirmText: '去設(shè)置',
			success: function(res) {
				if (res.confirm) {
					let Intent = plus.android.importClass('android.content.Intent');
					let Build = plus.android.importClass("android.os.Build");
					//android 8.0引導(dǎo)  
					if (Build.VERSION.SDK_INT >= 26) {
						let intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
						intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
					} else if (Build.VERSION.SDK_INT >= 21) { //android 5.0-7.0  
						let intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
						intent.putExtra("app_package", pkName);
						intent.putExtra("app_uid", uid);
					} else { //(<21)其他--跳轉(zhuǎn)到該應(yīng)用管理的詳情頁  
						intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
						let uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
						intent.setData(uri);
					}
					// 跳轉(zhuǎn)到該應(yīng)用的系統(tǒng)通知設(shè)置頁  
					main.startActivity(intent);
				}
			}
		});
	}
}
  1. 通知消息的左上角及右邊圖標(biāo)跟隨App圖標(biāo)配置:

注意:該圖標(biāo)必須為透明,不然左上角會(huì)顯示一個(gè)黑塊。

uni-app使用plus本地推送通知欄信息,不使用第三方個(gè)推實(shí)現(xiàn)消息在線統(tǒng)一推送、消息通知(MQTT、WebSocket、setInterval定時(shí)器),uni-app,websocket,消息通知

示例圖片如下:

uni-app使用plus本地推送通知欄信息,不使用第三方個(gè)推實(shí)現(xiàn)消息在線統(tǒng)一推送、消息通知(MQTT、WebSocket、setInterval定時(shí)器),uni-app,websocket,消息通知


【補(bǔ)充】

若是不使用MQTT或者WebSocket等協(xié)議,只使用setInterval定時(shí)器來實(shí)現(xiàn)簡(jiǎn)單的消息在線通知的話,則可以參考如下示例:

    1. 登錄成功后,觸發(fā)獲取所有未讀消息接口
    1. 判斷是登錄時(shí)的請(qǐng)求,還是已經(jīng)登錄后使用setInterval定時(shí)器觸發(fā)的請(qǐng)求
    1. 如果是登錄時(shí)觸發(fā)的請(qǐng)求,則把獲取到的數(shù)據(jù)的length長(zhǎng)度存在本地或者vuex,便于使用setInterval定時(shí)器時(shí)進(jìn)行比對(duì),來更新數(shù)量,進(jìn)行差異的消息通知

示例代碼如下(主要信息已用注釋方式標(biāo)出):

// 獲取消息列表,剛進(jìn)頁面時(shí),在鉤子內(nèi)觸發(fā)
getAllNotice() {
	this.$Message.unread().then(({data}) => { // 請(qǐng)求未讀信息接口,供參考
		this.messageData = data.data; // this.messageData接收獲取到的數(shù)據(jù)
		if(uni.getStorageSync('unreadMsgQuantity')) { // 判斷是否已經(jīng)在本地存了未讀數(shù)量(非第一次請(qǐng)求時(shí)才會(huì)走這步)
			if(uni.getStorageSync('unreadMsgQuantity') < this.messageData.length) { // 如果本地存的數(shù)據(jù)小于獲取到的數(shù)據(jù),說明接口有更新多的內(nèi)容
				let showMsg = this.messageData.slice(0, this.messageData.length - uni.getStorageSync('unreadMsgQuantity')) // 只彈出多出的也就是新增的消息
				if(showMsg.length > 0) { 
					showMsg.forEach((ele)=>{ // 在安卓通知欄進(jìn)行消息通知
						let body = {
							'rowId' : ele.rowId,
						}
						let payload = JSON.stringify(body);
						let options = {
							"cover" : false, // true:覆蓋上次,只保留最后一個(gè)
							"when" : new Date(),
							'title' : "通知消息"
						};
						// 發(fā)送消息通知
						plus.push.createMessage(ele.content, payload, options);
					})
				}
			}
			// 在本地更新最新的數(shù)量
			uni.setStorageSync('unreadMsgQuantity', this.messageData.length);
		} else { // 第一次登陸時(shí)走的這步
			if(this.messageData.length > 0) {
				uni.setStorageSync('unreadMsgQuantity', this.messageData.length); // 獲取到所有的未讀信息進(jìn)行存儲(chǔ)
				this.messageData.forEach((ele)=>{ // 在安卓通知欄進(jìn)行消息通知
					let body = {
						'rowId' : ele.rowId,
					}
					let payload = JSON.stringify(body);
					let options = {
						"cover" : false, // true:覆蓋上次,只保留最后一個(gè)
						"when" : new Date(),
						'title' : "通知消息"
					};
					// 發(fā)送消息通知
					plus.push.createMessage(ele.content, payload, options);
				})
			}
		}
		this.getSetIntervalData(); // 觸發(fā)定時(shí)器
	});
},
// 定時(shí)器函數(shù)
getSetIntervalData() {
	setInterval(this.getAllNotice, 30 * 1000);
},
// 最后記得清除定時(shí)器(clearInterval),清除本地存儲(chǔ)(uni.removeStorageSync('unreadMsgQuantity'))
    1. 點(diǎn)擊通知欄消息進(jìn)入到對(duì)應(yīng)頁面

示例代碼如下(主要信息已用注釋方式標(biāo)出):文章來源地址http://www.zghlxwxcb.cn/news/detail-555334.html

// 安卓通知欄提醒顯示,可放在app.vue--methods里
androidNoticeBar() {
	// 捕獲點(diǎn)擊的通知欄消息內(nèi)容
	plus.push.addEventListener( "click", function(msg){
		const page=getCurrentPages()
		let nowPage=page[page.length - 1].route // 獲取點(diǎn)擊消息時(shí),當(dāng)前所在的頁面
		if(nowPage.indexOf('notice-page')>-1){ // 已經(jīng)在消息頁面時(shí),禁止跳轉(zhuǎn)
			return;
		}
		if(uni.getStorageSync('token')) {
			uni.navigateTo({ // 登陸成功后,點(diǎn)擊消息跳轉(zhuǎn)到消息列表頁
				url:'../notice-page/index'
			});
		} else {
			console.log('token缺失'); // 跳轉(zhuǎn)到登錄頁
		}
	}, false); 
},

到了這里,關(guān)于uni-app使用plus本地推送通知欄信息,不使用第三方個(gè)推實(shí)現(xiàn)消息在線統(tǒng)一推送、消息通知(MQTT、WebSocket、setInterval定時(shí)器)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uni-app本地存儲(chǔ)

    大家好,今天和大家分享一下uni-app中的本地存儲(chǔ),其中分為同步和異步,有些朋友可能也在這兩個(gè)概念中迷惑過,下面我們就來講講這個(gè)本地存儲(chǔ)。 1.uni.setStorage(OBJECT) 將數(shù)據(jù)存儲(chǔ)在本地緩存中指定的 key 中,會(huì)覆蓋掉原來該 key 對(duì)應(yīng)的內(nèi)容,這是一個(gè)異步接口。 OBJECT參數(shù) 參

    2024年02月05日
    瀏覽(21)
  • uniapp通過websocket實(shí)現(xiàn)手機(jī)APP通知欄消息顯示功能(前端部分)

    ?開門見山地說,在移動(dòng)應(yīng)用端,從后端及時(shí)獲取消息,展示到手機(jī)消息通知欄上面來與用戶進(jìn)行交互是一個(gè)很高頻的應(yīng)用場(chǎng)景,這篇文章就來介紹一下,在uniapp開發(fā)中如何實(shí)現(xiàn)這種需求。 ?要實(shí)現(xiàn)這個(gè)需求,對(duì)于前端來說主要技術(shù)需要拆分成兩部分:一是從后端及時(shí)獲取消

    2024年03月18日
    瀏覽(23)
  • uni-app 的條件編譯(APP-PLUS 、H5、MP-WEIXIN )

    條件編譯是用特殊的注釋作為標(biāo)記,在編譯時(shí)根據(jù)這些特殊的注釋,將注釋里面的代碼編譯到不同平臺(tái)。 寫法:以 #ifdef 或 #ifndef 加 %PLATFORM% 開頭,以 #endif 結(jié)尾。 1 #ifdef:if defined 僅在某平臺(tái)存在 2 #ifndef:if not defined 除了某平臺(tái)均存在 3 %PLATFORM%:平臺(tái)名稱

    2024年02月09日
    瀏覽(23)
  • uni-app云打包與本地打包

    uni-app云打包與本地打包

    uni-app打包方式目前有兩種,云打包和本地打包,主要介紹本地打包, 開始使用打包之前,我們先看一下【 發(fā)行 】的工具欄,我們來簡(jiǎn)單介紹一下云打包與本地打包的區(qū)別: 原生APP-云打包: 原生APP-本地打包: 用HBuilderX打開要打包的項(xiàng)目 選中項(xiàng)目列表中的項(xiàng)目右擊選擇發(fā)行

    2023年04月10日
    瀏覽(24)
  • UNI-APP安卓本地打包詳細(xì)教程(保姆級(jí))

    UNI-APP安卓本地打包詳細(xì)教程(保姆級(jí))

    uni-app 官方文檔地址 ??原生開發(fā)者支持 1、Android Studio 下載地址:Android Studio官網(wǎng)?OR?Android Studio中文社區(qū) 2、最新版的HBuilderX 3、App離線SDK下載:最新android平臺(tái)SDK下載 4、3.1.10版本起需要申請(qǐng)Appkey, 申請(qǐng)請(qǐng)參考 點(diǎn)擊進(jìn)入?Android Studio官網(wǎng)?或者?Android Studio中文社區(qū) 點(diǎn)擊 Downl

    2024年04月23日
    瀏覽(33)
  • 記錄--UNI-APP安卓本地打包詳細(xì)教程(保姆級(jí))

    記錄--UNI-APP安卓本地打包詳細(xì)教程(保姆級(jí))

    這里給大家分享我在網(wǎng)上總結(jié)出來的一些知識(shí),希望對(duì)大家有所幫助 uni-app 官方文檔地址 原生開發(fā)者支持 1、Android Studio 下載地址:Android Studio官網(wǎng) OR Android Studio中文社區(qū) 2、最新版的HBuilderX 3、App離線SDK下載:最新android平臺(tái)SDK下載 4、3.1.10版本起需要申請(qǐng)Appkey,申請(qǐng)請(qǐng)參考

    2023年04月09日
    瀏覽(25)
  • uni-app項(xiàng)目打包成apk(本地打包篇)

    uni-app項(xiàng)目打包成apk(本地打包篇)

    ????????最近可能要接一個(gè)uni-app的項(xiàng)目,之前沒有接觸過,因此學(xué)習(xí)了一下,好在uni-app基本算是vue和微信小程序的結(jié)合體,所以寫代碼方面問題不是太多,不懂的百度一下基本都能處理。寫完demo之后,demo的內(nèi)容應(yīng)該能告訴客戶我可以做,但我一開始是先用手機(jī)錄制視頻

    2024年02月03日
    瀏覽(24)
  • uni-app打包之云打包與本地打包

    uni-app打包之云打包與本地打包

    背景 由于早之前發(fā)的文章關(guān)于app的大雜燴文章太雜了, 所以打算給拆一拆,這篇是uni-app打包篇 uni-app打包方式目前有兩種,云打包和本地打包,主要介紹本地打包,云打包比較簡(jiǎn)單,只進(jìn)行簡(jiǎn)單的介紹 云打包 用HBuilderX打開要打包的項(xiàng)目 選中項(xiàng)目列表中的項(xiàng)目右擊選擇發(fā)行

    2024年02月02日
    瀏覽(30)
  • uni-app Android studio 本地打包 【圖文講解】

    uni-app Android studio 本地打包 【圖文講解】

    需要修改文件列表 appsrcmainresvaluesstrings.xml 修改app名稱 appsrcmainresvaluesAndroidManifest.xml 修改 包名 以及 uni-app 開發(fā)者后臺(tái)生成的 離線打包可key simpleDemo 目錄下的 準(zhǔn)備安卓開發(fā)環(huán)境 (這里忽略,之前有文章講解) 安卓開發(fā)環(huán)境 https://nativesupport.dcloud.net.cn/AppDocs/download/an

    2024年02月03日
    瀏覽(24)
  • uni-app,關(guān)于 canvas 在 app,小程序, h5中,實(shí)現(xiàn)繪制,保存本地圖片

    沒有套路,沒有難讀的文檔,直接看代碼 html部分 js部分

    2024年02月13日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包