uniapp寫app做測試手機通知欄展示內容

uniapp寫app做測試手機通知欄展示內容

以下代碼:只是個簡單測試能不能給手機發送消息,能不能引導打開通知權限,能不能進行跳轉的功能,

增加??notify.js? ?以下文件


// 模擬本地通知功能
export function showNotification() {// 1. 檢查通知權限(Android)// #ifdef APP-PLUSif (plus.os.name === "Android") {const main = plus.android.runtimeMainActivity();const NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");// 獲取主Activity和包名// const main = plus.android.runtimeMainActivity();const pkName = main.getPackageName();// 檢測權限狀態const isEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled();if (!isEnabled) {uni.showModal({title: "通知權限未開啟",content: "請前往設置開啟通知權限",confirmText: "去設置",success: () => {try {const Intent = plus.android.importClass("android.content.Intent");const Build = plus.android.importClass("android.os.Build");let intent = new Intent();if (Build.VERSION.SDK_INT >= 26) { // Android 8.0+intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");intent.putExtra("android.provider.extra.APP_PACKAGE", pkName);} else { // 低版本通用方案const Settings = plus.android.importClass("android.provider.Settings");const Uri = plus.android.importClass("android.net.Uri");intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);intent.setData(Uri.fromParts("package", pkName, null));}main.startActivity(intent);} catch (e) {uni.showToast({ title: "跳轉失敗", icon: "none" });console.error(e);}}});}}// #endif// 2. 發送通知(固定內容)plus.push.createMessage("這是固定通知內容", // 通知正文(死值)"系統通知",         // 通知標題(死值){cover: true,      // 覆蓋舊通知sound: "system",   // 使用系統提示音payload: { path: "/pages/profile/index" }  // 攜帶跳轉路徑參數});
}

增加點擊事件? 隨便個地兒

<button @click="triggerNotify">觸發模擬通知</button>import { showNotification } from './notify.js';const triggerNotify =()=> {showNotification();uni.showToast({ title: '已發送模擬通知' });}

這只是個簡單測試能不能給手機發送消息,能不能引導打開通知頁,能不能進行跳轉的功能

以上內容如果使用HBuilderX的話,使用基座運行是可以推送了

接下來是打包成apk之后能推送的操作

參考文件地址:uniPush | uni小程序SDK【地址:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/push.html】

我這邊是用的sdk4.66,【點擊進入App離線SDK下載】【地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android.html#android-%E7%A6%BB%E7%BA%BFsdk-%E6%AD%A3%E5%BC%8F%E7%89%88】

奧? ?很煩那種別的地兒搬你文章不把你點擊進別的地方路徑搬過去,我就倆都放了

記得放這倆文件哈,放到libs下面

HBuilderX 3.99及以上版本所需的libs僅為:

路徑文件
SDK\libsaps-release.aar, aps-unipush-release.aar

接下來我們去開通 uniPush的推送功能:https://dev.dcloud.net.cn/pages/app/push2/index

看到這些信息了? 哎!這些信息有用

接下來這塊內容是官網的:

gradle配置

打開build.gradle,在defaultConfig添加manifestPlaceholders節點,如下圖所示,將io.dcloud.HBuilder替換成自己的應用包名,將appid等信息替換成申請之后的appid等。

應用的app id/app key等信息,從開發者后臺->unipush->配置管理->應用管理 界面查看?** 注意:HBuilderX3.1.15之后需要添加GETUI_APPID屬性 **

android {defaultConfig {manifestPlaceholders = ["GETUI_APPID": "unipush的appid","plus.unipush.appid" : "unipush的appid","plus.unipush.appkey" : "unipush的key","plus.unipush.appsecret": "unipush的secret","apk.applicationId":"io.dcloud.HBuilder"]}
}

附:配置圖片?

?

HBuilderX 3.99及以上版本的配置如下:

  • 項目根目錄下的build.gradle

    打開項目根目錄下的build.gradle

    需要在項目根目錄下的build.gradle下添加個推的倉庫地址,如下:

    allprojects {repositories {jcenter()google()// 個推的Maven倉地址。maven { url 'https://mvn.getui.com/nexus/content/repositories/releases' }}
    }

AndroidManifest.xml配置

在io.dcloud.PandoraEntry的Activity標簽下追加intent-filter,注意不能和其他的intent-filter內容合并到一起

<intent-filter><action android:name="android.intent.action.VIEW"/><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:host="io.dcloud.unipush" android:path="/" android:scheme="unipush" />
</intent-filter>

dcloud_properties.xml配置

在properties中添加如下配置,features節點與services節點必須同時配置!

<properties><features><feature name="Push" value="io.dcloud.feature.aps.APSFeatureImpl"><module name="unipush" value="io.dcloud.feature.unipush.GTPushService"/></feature></features>	<services><service name="push" value="io.dcloud.feature.aps.APSFeatureImpl"/></services>
</properties>

?有可能官網有寫其他配置了,我這邊暫時沒用到,打成apk 暫時用模擬器是可以跑的

ok看到這里就結束了,我們倆個真強!

功能展示圖片:? ? ?

還得看看這里展示圖片的問題,后續學習到了再說

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92698.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92698.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92698.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

分布式云計算:未來計算架構的全新演進

隨著信息技術的不斷發展,尤其是云計算技術的飛速進步,企業和個人對計算資源的需求已經從傳統的單一數據中心向更為靈活、可擴展的分布式架構轉變。分布式云計算作為一種新興的云計算模型,旨在將計算資源和數據存儲分布在多個地理位置上,從而提供更加高效、安全和可靠的服務…

2025年海外短劇獨立站開發:H5+PC端雙平臺技術實踐與增長策略

引言在全球化內容消費浪潮下&#xff0c;海外短劇市場正經歷爆發式增長。據DataEye《2025H1海外微短劇行業數據報告》顯示&#xff0c;2025年海外短劇市場規模預計突破45億美元&#xff0c;其中東南亞、拉美等新興市場貢獻超30%增量。本文將以某頭部短劇平臺的雙平臺開發實踐為…

OpenAI發布ChatGPT Agent,AI智能體迎來關鍵變革

注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》&#xff08;跟我一起學人工智能&#xff09;【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…

企業級安全威脅檢測與響應(EDR/XDR)架構設計

在這個網絡威脅如洪水猛獸的時代&#xff0c;企業的安全防護不能再像守城門的老大爺一樣只會喊"什么人&#xff1f;口令&#xff01;"了。我們需要的是一套像FBI一樣具備全方位偵察能力的智能防護系統。 &#x1f4cb; 文章目錄 1. 什么是EDR/XDR&#xff1f;別被這…

Stream流-Java

Stream流的作用&#xff1a;結合了Lambda表達式&#xff0c;簡化集合&#xff0c;數組的操作Stream流的使用步驟&#xff1a;1. 先得到一條Stream流&#xff08;流水線&#xff09;&#xff0c;并把數據放上去獲取方式方法名說明單列集合default Stream<E> stream()Colle…

Leetcode 327. 區間和的個數

1.題目基本信息 1.1.題目描述 給你一個整數數組 nums 以及兩個整數 lower 和 upper 。求數組中&#xff0c;值位于范圍 [lower, upper] &#xff08;包含 lower 和 upper&#xff09;之內的 區間和的個數 。 區間和 S(i, j) 表示在 nums 中&#xff0c;位置從 i 到 j 的元素…

MinIO 版本管理實踐指南(附完整 Go 示例)

? 前言 在構建企業級對象存儲系統時,“對象的版本管理”是一個關鍵特性。MinIO 作為一款高性能、Kubernetes 原生的 S3 兼容對象存儲系統,也支持強大的版本控制功能。 本文將通過 Go 示例代碼 + 實操講解 的形式,手把手帶你掌握 MinIO 的版本控制能力,包括開啟版本控制、…

數組toString方法及類型檢測修復方案

在 JavaScript 中&#xff0c;數組的 toString() 方法被覆蓋&#xff08;重寫&#xff09;為返回數組元素的逗號分隔字符串&#xff0c;而不是原始的 [object Array] 類型標識。以下是詳細解釋和修復方案&#xff1a;問題原因Array.prototype.toString 被覆蓋數組繼承自 Object…

mysql索引底層B+樹

B樹勝出的關鍵特性&#xff1a;矮胖樹結構&#xff1a;3-4層高度即可存儲2000萬條記錄&#xff08;假設每頁存1000條&#xff09; 葉子鏈表&#xff1a;所有數據存儲在葉子節點&#xff0c;并通過雙向鏈表連接 非葉導航&#xff1a;非葉子節點僅存儲鍵值&#xff0c;不保存數據…

AI開放課堂:釘釘MCP開發實戰

我們正處在AI技術爆發的時代&#xff0c;也處于企業數字化蓬勃發展的時代。如何利用AI技術&#xff0c;突破模型自身知識的局限&#xff0c;安全、高效地與外部世界連接和交互&#xff0c;是當前所有AI開發者在企業數字化中面臨的問題之一。 MCP&#xff08;Model Context Prot…

DigitalOcean 一鍵模型部署,新增支持百度開源大模型ERNIE 4.5 21B

使用過DigitalOcean GPU Droplet 服務器的用戶應該對我們的一鍵模型部署功能不陌生。DigitalOcean 的一鍵模型部署 (1-Click Models) 功能是 DO 為開發者和企業提供的一種便捷方式&#xff0c;用于快速部署和運行預訓練的生成式 AI 模型&#xff0c;尤其是大型語言模型 (LLM)。…

【嵌入式面試】嵌入式筆試與面試寶典(offer必來)

&#x1f48c; 所屬專欄&#xff1a;【嵌入式面試】 &#x1f600; 作??者&#xff1a;蘭舟比特 &#x1f43e; &#x1f680; 個人簡介&#xff1a;熱愛開源系統與嵌入式技術&#xff0c;專注 Linux、網絡通信、編程技巧、面試總結與軟件工具分享&#xff0c;持續輸出實用干…

企業級數據分析創新實戰:基于表格交互與智能分析的雙引擎架構

引言&#xff1a;數字化轉型中數據協同困境與系統融合挑戰 在數字化轉型實踐中&#xff0c;企業普遍面臨數據系統與業務運營的協同困境&#xff0c;主要表現為數據處理平臺與核心業務流程的架構隔離、分析成果與決策閉環的價值斷層、以及雙重數據維護帶來的資源損耗。這種系統…

openbmc 日志系統繼續分析

1.說明 1.1 總體說明 本節是繼: https://blog.csdn.net/wit_yuan/article/details/147142407?spm=1011.2415.3001.5331 后的繼續分析的文檔。 該篇內容主要目的是分析整個openbmc的日志系統。 注意解讀文檔: https://github.com/openbmc/docs/blob/master/designs/event-l…

【JIRA小白如何使用它進行bug管理】

JIRA小白如何使用它進行bug管理 提示&#xff1a;入職一般來說&#xff0c;公司會提供賬號&#xff0c;不需要部署如何提bug&#xff1a; JIRA有兩種提交方式 在執行測試用例中在bug管理項目中新建提bug建議或者注意事項&#xff1a; 標題&#xff1a;執行完A之后&#xff0c;發…

陪診小程序系統開發:開啟醫療陪護新時代

在快節奏的現代生活中&#xff0c;人們面臨著各種各樣的壓力&#xff0c;健康問題也日益凸顯。當生病就醫時&#xff0c;尤其是對于老年人、孕婦、殘障人士等特殊群體&#xff0c;獨自前往醫院往往會遇到諸多困難&#xff0c;如不熟悉醫院流程、行動不便、心理上感到孤獨無助等…

Leetcode—1035. 不相交的線【中等】

2025每日刷題&#xff08;214&#xff09; Leetcode—1035. 不相交的線最長公共子序列長度&#xff08;Longest Common Subsequence&#xff0c;LCS&#xff09; 給定兩個序列&#xff08;如字符串或數組&#xff09;&#xff0c;最長公共子序列&#xff08;LCS&#xff09;是同…

使用 Conda 工具鏈創建 UV 本地虛擬環境全記錄——基于《Python 多版本與開發環境治理架構設計》

Python 多版本環境治理理念驅動的系統架構設計&#xff1a;三維治理、四級隔離、五項自治 原則-CSDN博客 Python 多版本與開發環境治理架構設計-CSDN博客 【終極實戰】Conda/Poetry/Virtualenv/Pipenv/Hatch 多工具協同 AnacondaPyCharm&#xff1a;構建 Python 全版本棧隔離…

一文通透mamba2「力證Transformer are SSM」:從SSM、半可分矩陣、SMA、SSD到mamba2

前言 實話說&#xff0c;過去一兩月一直忙著我司兩大類項目的推進 一類是正在逐一上線基于大模型的論文翻譯、論文審稿、論文對話、論文修訂/潤色、論文idea提煉等等(截止到24年8月底&#xff0c;其中的審稿和翻譯已上線七月官網 )一類是正在抓緊做面向一個個工廠的具身智能機…