Android開發(fā)-App和網(wǎng)頁(yè)互相跳轉(zhuǎn)

前言

這種功能在很多大型App上都有出現(xiàn)压鉴,像京東、QQ锻拘、淘寶都很容易發(fā)現(xiàn)油吭。外部瀏覽器調(diào)起App,App跳轉(zhuǎn)外部瀏覽器網(wǎng)頁(yè)署拟。不得不說(shuō)婉宰,這樣的操作就有很強(qiáng)的產(chǎn)品塑造性了。

具體實(shí)現(xiàn)

  • App跳轉(zhuǎn)外部瀏覽器網(wǎng)頁(yè)

    這個(gè)實(shí)現(xiàn)很簡(jiǎn)單推穷,兩三行代碼的事情心包,不復(fù)雜!

    1.獲取需要打開的uri

    2.通過(guò)隱性intent喚起瀏覽器

    Uri uri = Uri.parse("https://www.baidu.com");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);
    
  • 外部瀏覽器調(diào)起App

    這個(gè)實(shí)現(xiàn)要先來(lái)說(shuō)說(shuō)URI原理性知識(shí)馒铃。Android上的URI主要有三部分組成蟹腾,scheme, authoritypath。其中authority又分為hostport区宇,具體格式如下所示:

    scheme://host:port/path
    
    image.png

    舉個(gè)具體的例子:

    假設(shè)這是我們用來(lái)調(diào)起App的網(wǎng)頁(yè)html代碼

    <html>
    <meta charset="UTF-8">
       <body>
         <h1>Test Scheme</h1> <!--自動(dòng)加載隱藏頁(yè)面跳轉(zhuǎn)-->
          <!--手動(dòng)點(diǎn)擊跳轉(zhuǎn)-->
          <a href="union://myunion:7380/ucar/user">點(diǎn)擊打開APP</a>
       </body>
    </html>
    

    然后在App入口Activity(我這里是MainActivity)的注冊(cè)清單AndroidManifest.xml中配置intent-filter娃殖,指定App要接收到的hostscheme,具體代碼如下:

            <activity
                android:name="com.uu.genauction.view.activity.MainActivity"
                android:screenOrientation="sensorPortrait">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                <intent-filter>
                    <!-- 協(xié)議部分配置 ,要在web配置相同的-->
                    <data
                        android:host="myunion"
                        android:scheme="union"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                    <category android:name="android.intent.category.BROWSABLE"/>
                    <action android:name="android.intent.action.VIEW"/>
                </intent-filter>
            </activity>
    

    最后萧锉,當(dāng)我們點(diǎn)擊html的時(shí)候珊随,實(shí)際上就是打開URIunion://myunion:7380/ucar/user。所以當(dāng)與App上事先配置的信息一致時(shí)柿隙,就能夠調(diào)起我們的App叶洞。

    另外,如果想把網(wǎng)頁(yè)的信息帶過(guò)去App的話禀崖,可以在URI中的path中添加參數(shù)衩辟,添加方式是?key=value。例如:

    union://myunion:7380/ucar/user?name=helloworld
    

    然后App端接收傳過(guò)來(lái)的數(shù)據(jù)

      protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mTextView= (TextView) findViewById(R.id.tv_main_show);
            Intent intent = getIntent();
            Uri uri=intent.getData();
            if(uri!=null){
                String name=uri.getQueryParameter("name");
                String scheme= uri.getScheme();
                String host=uri.getHost();
                String port=uri.getPort()+"";
                String path=uri.getPath();
                String query=uri.getQuery();
                mTextView.setText("獲得的數(shù)據(jù)name="+name+"/r"+"scheme"+scheme+"/r"+"host" +
                        "host"+host+"/r"+"port"+port+"/r"+"path"+path+"/r"+"query"+query);
            }
      }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末波附,一起剝皮案震驚了整個(gè)濱河市艺晴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掸屡,老刑警劉巖封寞,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仅财,居然都是意外死亡狈究,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門盏求,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抖锥,“玉大人,你說(shuō)我怎么就攤上這事碎罚“醴希” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵荆烈,是天一觀的道長(zhǎng)拯勉。 經(jīng)常有香客問我,道長(zhǎng)憔购,這世上最難降的妖魔是什么宫峦? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮倦始,結(jié)果婚禮上斗遏,老公的妹妹穿的比我還像新娘。我一直安慰自己鞋邑,他們只是感情好诵次,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著枚碗,像睡著了一般逾一。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肮雨,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天遵堵,我揣著相機(jī)與錄音,去河邊找鬼。 笑死陌宿,一個(gè)胖子當(dāng)著我的面吹牛锡足,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播壳坪,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼舶得,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了爽蝴?” 一聲冷哼從身側(cè)響起沐批,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蝎亚,沒想到半個(gè)月后九孩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡发框,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年躺彬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缤底。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顾患,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出个唧,到底是詐尸還是另有隱情江解,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布徙歼,位于F島的核電站犁河,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏魄梯。R本人自食惡果不足惜桨螺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酿秸。 院中可真熱鬧灭翔,春花似錦、人聲如沸辣苏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)稀蟋。三九已至煌张,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間退客,已是汗流浹背骏融。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工链嘀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人档玻。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓怀泊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親窃肠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子包个,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容