方式一:包名+特定Activity路徑拉起(這里進去就是想到達的指定Activity)

為新洲等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及新洲網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、做網(wǎng)站、新洲網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
方式二:采用包名拉起(這里就是進去啟動頁)
具體logcat錯誤是:
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cmp=com.example.mykotlindemo/.main.MainActivity (has extras) } from ProcessRecord{c4e43b9 9825:com.kc.mvvmcomponent/u0a541} (pid=9825, uid=10541) not exported from uid 10563
原因是,沒有設(shè)置另一個app可被其他組件啟動,需要在要被啟動的指定Activity中設(shè)置: android:exported="true"
表明當前 activity 能否被另外一個Application 的組件啟動,true允許啟動,false不允許。默認是false。注意:該屬性是四大組件都擁有的。
我們在app中,有的時候想跳轉(zhuǎn)到應用市場,去更新apk或者去評分。我們就需要在自己本app中跳轉(zhuǎn)到應用市場。
原理十分簡單,構(gòu)建一個ACTION_VIEW標記的Intent,并給一個如下結(jié)構(gòu)的 Uri 即可:
在 Android 平臺上,正常情況下手機中的應用商店應該是 Google Play
但是由于各種你懂我也懂的原因,國內(nèi)基本上無法使用 Google Play 服務(wù)。
好在廣泛的第三方應用市場大多都實現(xiàn)了這個接口。
需要注意的就是,如果界面跳轉(zhuǎn)失敗,會拋出異常,因此能否跳轉(zhuǎn)需要進行判斷。
根據(jù)以上,同理使用以下Uri進行替換:
本文我們來學習Activity之間的跳轉(zhuǎn)
主界面放一個Button,用于跳轉(zhuǎn),Second界面就放一個TextView
MainActivity.java
activity_main.xml
SecondActivity.java
activity_second.xml
AndroidMainfest.xml
界面跳轉(zhuǎn)主要是通過構(gòu)建Intent,然后調(diào)用Activity的startActivity方法去啟動
Intent接收兩個參數(shù),一個是Context,一個是需要跳轉(zhuǎn)的Activity(Context有三種,分別是Application、Activity、Service,具體區(qū)別之后會發(fā)專門的文章來分析)
隱式啟動也需要構(gòu)建Intent,不過Intent傳入的參數(shù)是一串字符,這串字符是由你自己定義的
我們先來修改AndroidManifest.xml
action自定義一個字符串,按自己喜歡的風格命名就行了
categroy也是由自己定義,但這里我們就用一個默認的字符串
接著修改MainActivity.java
注意這個Intent傳入的參數(shù)要和之前定義的action一樣
如果在AndroidManifest.xml中加了自己的category,那么就要這樣寫
我們在啟動時要匹配所有的category才能啟動
這時,你會發(fā)現(xiàn)我沒有將android.intent.category.DEFAULT加進去
這是因為startActivity的時候,系統(tǒng)會自動自動幫我們加上
這個就是隱式啟動。
android中的scheme是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議,是一種非常好的實現(xiàn)機制,通過定義自己的scheme協(xié)議,可以非常方便跳轉(zhuǎn)app中的各個頁面;通過scheme協(xié)議,服務(wù)器可以定制化告訴App跳轉(zhuǎn)那個頁面,可以通過通知欄消息定制化跳轉(zhuǎn)頁面,可以通過H5頁面跳轉(zhuǎn)頁面等。
客戶端應用可以在服務(wù)端注冊一個URL Scheme,該Scheme用于從瀏覽器或其他應用啟動本應用。通過指定的URL字段,可以讓應用在被調(diào)起后直接打開某些特定界面,比如商品詳情頁,活動詳情頁等。也可以執(zhí)行某些特定的動作,如完成支付等。也可以在應用內(nèi)通過html頁來直接調(diào)用顯示app內(nèi)的某個界面。綜上URL Schema使用場景大致分以下幾種:
一個完整的Scheme的協(xié)議格式由 scheme、userInfo、host、port、path、query和fragment 組成。結(jié)構(gòu)如下:
scheme://是固定的格式。userInfo@ 可以省略,host 是必須的。port 、query 和 fragment 也是可以省略的。
其中scheme既可以是Android已經(jīng)定義好的協(xié)議,也可使用我們自定義的。Android 常見的scheme 協(xié)議有:content 、file、http 等。如果我們自定義協(xié)議就可以隨意使用一些字符串來限定協(xié)議。當然最好是有一定含義的字符串。如下面的協(xié)議:
首先配置需要跳轉(zhuǎn)的Activity,Mainifest文件配置如下:
SchemeActivity
在網(wǎng)頁中調(diào)用:
運行結(jié)果如下:
其他運用方式都基于樣例,源碼地址: URL_SchemeDemo
什么是 URL Scheme?
轉(zhuǎn)自:
稍稍記錄一下
android中的scheme是一種頁面內(nèi)跳轉(zhuǎn)協(xié)議。
通過定義自己的scheme協(xié)議,可以非常方便跳轉(zhuǎn)app中的各個頁面;
通過scheme協(xié)議,服務(wù)器可以定制化告訴App跳轉(zhuǎn)到APP內(nèi)部頁面。
之前項目都是我們客戶端和服務(wù)器端用自定義json串的形式來告訴客戶端如何跳轉(zhuǎn),這種方式要手動解析字段,有點麻煩。然而scheme協(xié)議自帶字段解析,非常之方便,后面我們就放棄了json解析的方式。
Scheme協(xié)議在Android中使用場景
H5跳轉(zhuǎn)到native頁面
客戶端獲取push消息中后,點擊消息跳轉(zhuǎn)到APP內(nèi)部頁面
APP根據(jù)URL跳轉(zhuǎn)到另外一個APP指定頁面
利用scheme協(xié)議跳轉(zhuǎn)的一個完整實例
在Mainefest配置文件中配置需要用scheme協(xié)議跳轉(zhuǎn)的Activity
模擬從網(wǎng)絡(luò)中獲取scheme協(xié)議的url
獲取scheme協(xié)議參數(shù)
當前名稱:android跳轉(zhuǎn),android跳轉(zhuǎn)應用權(quán)限設(shè)置
文章源于:http://chinadenli.net/article33/dsgopps.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、服務(wù)器托管、用戶體驗、ChatGPT、微信公眾號、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)