天天看點

Android 通過網頁打開自己的APP(scheme)

通過用手機的浏覽器(内置,第三方都可)通路一個網頁,實作點選一個連結啟動自己的應用,并傳遞資料。

首先在mainifest檔案裡面對要啟動的activity添加一個過濾器。

<code>1</code>

<code>&lt;</code><code>activity</code>

<code>2</code>

<code>            </code><code>android:name</code><code>=</code><code>"com.example.helloworld.mainactivity"</code>

<code>3</code>

<code>            </code><code>android:label</code><code>=</code><code>"@string/app_name"</code> <code>&gt;</code>

<code>4</code>

<code>            </code><code>&lt;</code><code>intent-filter</code><code>&gt;</code>

<code>5</code>

<code>                </code><code>&lt;</code><code>action</code> <code>android:name</code><code>=</code><code>"android.intent.action.main"</code> <code>/&gt;</code>

<code>6</code>

<code>7</code>

<code>                </code><code>&lt;</code><code>category</code> <code>android:name</code><code>=</code><code>"android.intent.category.launcher"</code> <code>/&gt;</code>

<code>8</code>

<code>            </code><code>&lt;/</code><code>intent-filter</code><code>&gt;</code>

<code>9</code>

<code>10</code>

<code>                </code><code>&lt;</code><code>action</code> <code>android:name</code><code>=</code><code>"android.intent.action.view"</code><code>/&gt;  </code>

<code>11</code>

<code>                </code><code>&lt;</code><code>category</code><code>android:name</code><code>=</code><code>"android.intent.category.default"</code><code>/&gt;            </code>

<code>12</code>

<code>                </code><code>&lt;</code><code>category</code> <code>android:name</code><code>=</code><code>"android.intent.category.browsable"</code><code>/&gt;</code>

<code>13</code>

<code>                </code><code>&lt;</code><code>data</code> <code>android:scheme</code><code>=</code><code>"znn"</code><code>/&gt;</code>

<code>14</code>

<code>15</code>

<code>        </code><code>&lt;/</code><code>activity</code><code>&gt;</code>

在mainactivity接收資料:

<code>public</code> <code>class</code> <code>mainactivity </code><code>extends</code> <code>activity </code><code>implements</code> <code>view.onclicklistener{</code>

<code>    </code><code>@override</code>

<code>    </code><code>protected</code> <code>void</code> <code>oncreate(bundle savedinstancestate) {</code>

<code>        </code><code>super</code><code>.oncreate(savedinstancestate);</code>

<code>        </code><code>setcontentview(r.layout.activity_main);</code>

<code>        </code><code>intent intent = getintent();</code>

<code>        </code><code>string scheme = intent.getscheme();</code>

<code>        </code><code>uri uri = intent.getdata();</code>

<code>        </code><code>system.out.println(</code><code>"scheme:"</code><code>+scheme);</code>

<code>        </code><code>if</code> <code>(uri != </code><code>null</code><code>) {</code>

<code>            </code><code>string host = uri.gethost();</code>

<code>            </code><code>string datastring = intent.getdatastring();</code>

<code>            </code><code>string id = uri.getqueryparameter(</code><code>"id"</code><code>);</code>

<code>16</code>

<code>            </code><code>string path = uri.getpath();</code>

<code>17</code>

<code>            </code><code>string path1 = uri.getencodedpath();</code>

<code>18</code>

<code>            </code><code>string querystring = uri.getquery();</code>

<code>19</code>

<code>            </code><code>system.out.println(</code><code>"host:"</code><code>+host);</code>

<code>20</code>

<code>            </code><code>system.out.println(</code><code>"datastring:"</code><code>+datastring);</code>

<code>21</code>

<code>            </code><code>system.out.println(</code><code>"id:"</code><code>+id);</code>

<code>22</code>

<code>            </code><code>system.out.println(</code><code>"path:"</code><code>+path);</code>

<code>23</code>

<code>            </code><code>system.out.println(</code><code>"path1:"</code><code>+path1);</code>

<code>24</code>

<code>            </code><code>system.out.println(</code><code>"querystring:"</code><code>+querystring);</code>

<code>25</code>

<code>        </code><code>}</code>

<code>26</code>

<code>        </code> 

<code>27</code>

<code>    </code><code>}</code>

<code>28</code>

<code>}</code>

寫一個最簡單的網頁:

&lt;a href=”znn://aa.bb:80/test?p=12&amp;d=1″&gt;test&lt;/a&gt;

測試位址:www.erdian.net/m.html

測試結果:

scheme:znn

host:aa.bb

datastring:znn://aa.bb:80/test?p=12&amp;id=1

id:1

path:/test

path1:/test

querystring:p=12&amp;d=1

繼續閱讀