在手機瀏覽器啓動你的app

最近,在使用QQ和微信等SDK來實現分享網頁的時候,發現,SDK已經爲頁面跳轉回應用提供了基本的數據支持。咱們只需在應用裏和被分享的網頁進行簡單的設置,便可實現此功能。html

那麼咱們先來看下網頁跳轉回應用的實現原理。java

就Android平臺而言,URI主要分三個部分:scheme, authority and path。其中authority又分爲host和port。格式以下: 
scheme://host:port/path 
舉個實際的例子: 
content://com.example.project:200/folder/subfolder/etc 
\---------/  \---------------------------/ \---/ \--------------------------/ 
scheme                 host               port        path 
                \--------------------------------/ 
                          authority    

如今你們應該知道data flag中那些屬性的含義了吧,看下data flag 
<data android:host="string" 
      android:mimeType="string" 
      android:path="string" 
      android:pathPattern="string" 
      android:pathPrefix="string" 
      android:port="string" 
      android:scheme="string" /> 
android

如下是測試示例的實現步驟:瀏覽器

1. 新建一個工程A,並實現一個Activity,用來接收外部的跳轉。代碼以下:微信

public class JumpActivity extends Activity{


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		Intent intent = getIntent();
		
		String data = intent.getDataString();
		System.out.println(data);
	}
	
}

在這個Activity裏,咱們能夠經過getIntent(),來獲取外部跳轉傳過來的信息。ide

2.  修改ManiFest文件,設置Activity的接收Action的屬性,代碼以下:測試

<activity android:name=".JumpActivity" >
    <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="sharetest" android:host="data" />
    </intent-filter>
</activity>

如上所示,在data裏設置了 scheme和host,則該Activity能夠接收和處理相似於 "sharetest://data/XXX"的連接。spa

3. 接下來咱們能夠寫一個網頁的代碼,因爲瀏覽器在接收到本身不能處理的Uri時,會自動的調用發送Intent來調用可以處理該Uri的應用。code

如下是網頁的代碼:orm

<!DOCTYPE html>
<html>
<body>
<iframe src="sharetest://data/123" style="display:none"></iframe>
</body>
</html>

4. 在手機瀏覽器裏訪問此頁面,能夠發現:JumpActivity會自動被打開。以下圖所示:在Intent中能夠去到網頁裏發出的連接:sharetest://data/123。

經過以上的4步,相信你們都瞭解如何讓應用接收和處理某種Uri消息。所以,只要咱們

1. 在ManiFest裏爲Activity申明接收並處理某種Uri

2. 在頁面中添加如下代碼:其中,l爲符合Activity處理規則的Uri地址。

<iframe src="l" style="display:none"></iframe>

就能夠讓已安裝該應用的用戶在打開該網頁的時候,自動的跳轉到應用內部。

相關文章
相關標籤/搜索