安卓webview嵌套网页不更新更换域名
文章目錄
- 場景
- 極光推送
- 極光推送注意幾點
- 嵌套webview的坑
- webview填坑代碼
- php服務端推送域名給APP
- 動態(tài)更換域名
- 設備注冊ID和用戶綁定
- 總結
場景
最近得一個項目中,因為沒有原生安卓開發(fā)人員,只有選擇用webview嵌套網頁得方式來打包程序,不知道什么域名總是在微信和QQ里面被報違規(guī),就得很頻繁得更新下載得域名,后面下載通過中間頁面方式解決了,居安思危,想到了之前做了一個博客還被人DDos攻擊, 萬一程序里面請求數(shù)據(jù)得域名無法訪問了,那已下載得用戶豈不是很尷尬,想來想去,也沒有找到好的解決方案,后面在做IM消息推送得時候,得到了靈感,我主動獲取網址可能不行,那我可以被動接受啊, 那可以借助第三方推送來實現(xiàn)把域名推送給安卓殼子,反正三方sdk得域名一般有專人維護,大不了交點費用, 殼子收到域名后,重新loadUrl即可。僅憑自己n年前學的安卓基礎,想到了極光推送。
極光推送
- 注冊賬號以后進入開發(fā)者中心
- 創(chuàng)建應用,集成并下載整合好的sdk ,整合過程按照文檔一步一步來即可。
極光推送注意幾點
* 盡量不要發(fā)廣播,廣播每天免費只有10次機會,能用設備注冊ID推送的就用ID推送 * 集成過程中最好直接把下載好的sdk全部拷貝過去,參考文檔修改已有的代碼。 * 如果是在已有的項目中集成,需要注意sdk中baseApplication中一些初始化的工作,我就是集成到已有項目中,一些初始化工作沒有做,導致一直不成功。嵌套webview的坑
* alert彈出框會有網址,這個是我們不希望看到的,可以選擇重寫也可以在js中直接自己封裝一個美化版本alert * 默認狀態(tài)是不允許選擇文件 * 默認狀態(tài)下如果js中使用了window.location.href=進行跳轉的不能跳轉頁面,需要重寫方法才行webview填坑代碼
- 不允許選擇文件
- window.location跳轉
php服務端推送域名給APP
composer安裝Jpush庫
-
我這里用得是thinkphp5來集成的,這個不會自動加載到框架autoload里面,而是自己有一個autoload,需要在入口里面自己手動引入才可用。
-
簡單調用
動態(tài)更換域名
在調用php推送以后,在安卓端會有一個方法是
接收到字符串以后,需要轉為json, 這里用的GSON轉的。
獲取域名以后放入緩存中,webview加載url的時候都是從緩存中讀取的,沒有的話就默認加載我們代碼中寫死的網址。
放入緩存以后,可以用廣播的方式通知webview去更改加載的url 也可以直接退出程序,重新打開程序url就被更新了。
設備注冊ID和用戶綁定
這一點也是突發(fā)奇想來的,最近短信費用不夠用了,如果能夠使用推送消息的方式替換短信,就需要把設備ID和用戶信息進行一個綁定,這時候就需要安卓和webview進行通信了。
這里介紹最簡單的一種,直接在安卓代碼中獲取到設備ID,在加載頁面完成以后,直接傳到頁面上去。
傳送代碼:
接收代碼:
總結
這里只是做了最簡單的demo演示,后面還有一些細節(jié)性的代碼沒有給出,比如集成過程中遇到的小問題,設備注冊ID接收以后格式的判斷,以及從android 向網頁發(fā)送數(shù)據(jù)進行加密傳輸,APP的混淆防止別人反編譯。需要代碼的可以小窗我。
總結
以上是生活随笔為你收集整理的安卓webview嵌套网页不更新更换域名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站的更新与维护
- 下一篇: 163设置邮件服务器,网易邮箱设置Exc