1. 程式人生 > >Android學習筆記---通過網頁喚醒自己的APP並且傳參

Android學習筆記---通過網頁喚醒自己的APP並且傳參

前言

相信大家在生活中會發現很多網頁都有這樣的功能,前一秒還在網頁呢 後一秒莫名其妙的就進入了他們的APP,那麼這種效果到底是如何做的呢?
經過本屌絲認真學習後發現是使用安卓中android:scheme屬性來完成功能的,這裡說一下我個人看法,我覺得android:scheme屬性很想Intent的隱式匹配,或者說他就是隱式的一種,言歸正傳 接下來我們來看一下到底咋用

實踐部分

首先我們先新建一個專案並且在AndroidManifest.xml中加入android:scheme屬性

            <!--增加如下屬性,其中crack是喚醒程式的action-->
            <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:scheme="crack"/> </intent-filter>

現在我們在MainActivity中獲取網頁轉過來的引數

public
class MainActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = findViewById(R.id.text_ht); Intent intent = new
Intent(); //獲取引數詳情 Uri uri = intent.getData(); if(uri != null){ textView.setText(uri.getPath()); String host = uri.getHost(); String dataString = intent.getDataString(); String id = uri.getQueryParameter("d"); String path = uri.getPath(); String path1 = uri.getEncodedPath(); String queryString = uri.getQuery(); System.out.println("host:"+host); System.out.println("dataString:"+dataString); System.out.println("id:"+id); System.out.println("path:"+path); System.out.println("path1:"+path1); System.out.println("queryString:"+queryString); } } }

現在咱們APP該做的視訊已經做完了,現在來搞網頁的
新建一個ht.html

<html>
    <head>
        <meta http-equiv=content-type content="text/html;charset=utf-8">
         <title>網頁喚醒APP</title>
    </head>
    <body>
        <input id="txt"/>
        <input type="button" value="提交" onclick="sub()">
    </body>
    <script>
            //獲取內容
            function sub(){
                var content = document.getElementById("txt");
                //此處注意其中crack替換為你APP中設定的名字
                var str = 'crack://crack.gm:80/'+content.value+'?p=91&d=15';
                openUrl(str);
            }
            //喚醒APP
             function openUrl(url){
            window.open(url);
        }
    </script>
</html>

接下來 我們來執行一下看看效果

這裡寫圖片描述