国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 如何使用短信鏈接打開APP

2019-12-12 01:07:24
字體:
供稿:網(wǎng)友

短信鏈接跳轉(zhuǎn)APP

平時(shí)我們會收到廣告短信,比如某東,某寶,里面附加著鏈接,當(dāng)你點(diǎn)開鏈接(手機(jī)自帶的瀏覽器),發(fā)現(xiàn)瀏覽器打開后,等一下下,就會打開對應(yīng)的APP,直接到廣告相應(yīng)的頁面。

Android端的代碼

從簡單的開始,第一個(gè)啟動的Activity先來處理

<activity android:name=".activity.ActivityFirst">  <intent-filter>    <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>  <!-- 不可以把上面,桌面啟動圖標(biāo)的intent-filter,跟下面短信打開App的intent-filter寫一起,否者沒有桌面圖標(biāo)-->  <!-- 在啟動的activity加入以下代碼,其中scheme很重要,短信啟動App的標(biāo)識吧 -->  <intent-filter>    <data android:scheme="baozi" />     <action android:name="android.intent.action.VIEW" />    <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" />  </intent-filter></activity>

2.HTML代碼,關(guān)鍵就是href,就是之前Android啟動intent-filter的 “ [scheme的內(nèi)容]” + “ :” 這個(gè)冒號不能少

<!DOCTYPE html><html><head>  <title>Android短信測試</title></head><body>  <a href="baozi:" rel="external nofollow" >啟動程序</a></body></html>

3.測試一下,能不能啟動App,我們沒有服務(wù)器的情況下,可以把這段HTML代碼拷貝到手機(jī)里,點(diǎn)擊選擇品牌自帶瀏覽器啟動就可以啦。

基本啟動功能.gif

最基本的功能實(shí)現(xiàn)啦,然后我再傳遞參數(shù),打開指定的頁面。

1.HTML的跳轉(zhuǎn)鏈接里面添加參數(shù)

<a href=" scheme的內(nèi)容 :// host的內(nèi)容?傳遞參數(shù)的key=傳遞參數(shù)的value" rel="external nofollow" >隨意什么內(nèi)容...</a><a href="baozi://bao.cn?type=red&url=111&name=紅色" rel="external nofollow" rel="external nofollow" >啟動紅色程序</a><a href="baozi://bao.cn?type=yellow&name=黃色" rel="external nofollow" rel="external nofollow" >啟動黃色色程序,url空</a><a href="baozi://bao.cn?type=green&url=333" rel="external nofollow" rel="external nofollow" >啟動綠色程序,name空</a>

scheme:啟動的App的標(biāo)識,相當(dāng)于協(xié)議吧。

host:域名,不重要。

query:傳給app參數(shù)的Key和Value 。

2.Android代碼,在第一啟動頁加入下面代碼

public static final String TYPE_INTENT = "type";  public static final String URL_INTENT = "url";  public static final String NAME_INTENT = "name";  if (intent.getData() != null)    {      Uri uri = intent.getData();      uri.getScheme();//獲取scheme      uri.getHost();//獲取host      uri.getAuthority();//獲取authority      String type = uri.getQueryParameter(TYPE_INTENT);//獲取傳遞參數(shù)      String url = uri.getQueryParameter(URL_INTENT);      String name = uri.getQueryParameter(NAME_INTENT);      //標(biāo)題轉(zhuǎn)UTF-8碼      if (!TextUtils.isEmpty(name))      {        try        {          name = URLDecoder.decode(name, "UTF-8");        } catch (UnsupportedEncodingException e)        {          e.printStackTrace();        }      }    }

參數(shù)可以傳空的,如果是中文要轉(zhuǎn)碼,斷點(diǎn)看看參數(shù)

3.測試。

參數(shù)跳轉(zhuǎn).gif

4.總結(jié),短信跳轉(zhuǎn)App難度不大,就是基本用原生或者chrome內(nèi)核的瀏覽器,支持跳轉(zhuǎn),其他瀏覽器兼容問題會有。

5.代碼不多,就直接放出來。

ActivityFirst代碼

public class ActivityFirst extends AppCompatActivity{  public static final String TYPE_INTENT = "type";  public static final String URL_INTENT = "url";  public static final String NAME_INTENT = "name";  @Override  protected void onCreate(@Nullable Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    setContentView(R.layout.first_activity);    //如果是從網(wǎng)址打開的    Intent intent = getIntent();    if (intent.getData() != null)    {      Uri uri = intent.getData();      uri.getScheme();//獲取scheme      uri.getHost();//獲取host      uri.getAuthority();//獲取authority      String type = uri.getQueryParameter(TYPE_INTENT);      String url = uri.getQueryParameter(URL_INTENT);      String name = uri.getQueryParameter(NAME_INTENT);      //標(biāo)題轉(zhuǎn)UTF-8碼      if (!TextUtils.isEmpty(name))      {        try        {          name = URLDecoder.decode(name, "UTF-8");        } catch (UnsupportedEncodingException e)        {          e.printStackTrace();        }      }      //獲取到的參數(shù)跳轉(zhuǎn)      Intent intentStart = new Intent(this,ActivityMain.class);      intentStart.putExtra(TYPE_INTENT,type);      intentStart.putExtra(URL_INTENT,url);      intentStart.putExtra(NAME_INTENT,name);      startActivity(intentStart);      finish();    }  }}

HTML代碼

<!DOCTYPE html><html><head>  <title>Android短信測試</title></head><body>  <a href="baozi://bao.cn?type=red&url=111&name=紅色" rel="external nofollow" rel="external nofollow" >啟動紅色程序</a>  <br>  <a href="baozi://bao.cn?type=yellow&name=黃色" rel="external nofollow" rel="external nofollow" >啟動黃色色程序,url空</a>  <br>  <a href="baozi://bao.cn?type=green&url=333" rel="external nofollow" rel="external nofollow" >啟動綠色程序,name空</a></body></html>

Manifest代碼最上面有了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳高县| 伊春市| 蒙城县| 阆中市| 大英县| 威海市| 乌鲁木齐县| 崇阳县| 原平市| 高阳县| 龙州县| 邓州市| 谷城县| 图木舒克市| 安陆市| 称多县| 新沂市| 嘉定区| 湘潭市| 昌平区| 黄山市| 通山县| 瑞金市| 绍兴县| 雅江县| 阿拉善盟| 舞阳县| 五原县| 太和县| 得荣县| 句容市| 册亨县| 文昌市| 晋中市| 东莞市| 洱源县| 大荔县| 莫力| 繁峙县| 宜君县| 容城县|