天天看点

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

继续阅读