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

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

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

2019-10-22 18:14:18
字體:
供稿:網(wǎng)友

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

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

Android端的代碼

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

<activity android:name=".activity.ActivityFirst">  <intent-filter>    <action android:name="android.intent.action.MAIN" />     <category android:name="android.intent.category.LAUNCHER" />  </intent-filter>  <!-- 不可以把上面,桌面啟動圖標的intent-filter,跟下面短信打開App的intent-filter寫一起,否者沒有桌面圖標-->  <!-- 在啟動的activity加入以下代碼,其中scheme很重要,短信啟動App的標識吧 -->  <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代碼,關鍵就是href,就是之前Android啟動intent-filter的 “ [scheme的內(nèi)容]” + “ :” 這個冒號不能少

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

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

Android,短信,鏈接,APP,短信鏈接打開app

基本啟動功能.gif

最基本的功能實現(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的標識,相當于協(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);      //標題轉(zhuǎn)UTF-8碼      if (!TextUtils.isEmpty(name))      {        try        {          name = URLDecoder.decode(name, "UTF-8");        } catch (UnsupportedEncodingException e)        {          e.printStackTrace();        }      }    }

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

Android,短信,鏈接,APP,短信鏈接打開app

3.測試。

Android,短信,鏈接,APP,短信鏈接打開app

參數(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);      //標題轉(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)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關教程知識閱讀請移步到Android開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 固始县| 绥宁县| 延寿县| 清远市| 虹口区| 含山县| 婺源县| 于田县| 屯昌县| 潜江市| 阿拉善盟| 长宁区| 龙山县| 东宁县| 夏河县| 奉节县| 略阳县| 中阳县| 增城市| 大同县| 五河县| 鹰潭市| 丹寨县| 迭部县| 屯留县| 波密县| 称多县| 天水市| 武山县| 会宁县| 泽库县| 铜陵市| 定远县| 邵东县| 永胜县| 永泰县| 崇州市| 宁德市| 莱阳市| 平利县| 姚安县|