admin 管理员组

文章数量: 887021

Android通过浏览器打开App并传递参数;

Data的Uri的规则:

scheme://host:port/path or pathPrefix or pathPattern

打开App传递参数Uri的格式:

scheme://host/path?query

scheme:传输协议(一般为http or https,但是也可以为其他);

host:包名;

path:为了格式化path所用,不同可以区分Activity

query:传递参数,eg: ?userName=牛八少爷&pwd=niuba123 ; 

 

案例:

  1. Activity开发:com.niubashaoye.android.demo.activity.BrowserActivity
     
    	private void initData() {
    		//获取数据
    		Intent intent = getIntent();
    		Uri uri = intent.getData();
    		txt_userNamer.setText("姓名:" + uri.getQueryParameter("userName"));
    		txt_pwd.setText("密码:" + uri.getQueryParameter("pwd"));
    	}

     

  2. AndroidManifest.xml中Activity添加<intent-filter /> 和<Data />
     
      <activity
                android:name="com.niubashaoye.android.demo.activity.BrowserActivity"
                android:label="@string/str_browser" >
                <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:host="www.niubashaoye"
                        android:path="/browserActivity"
                        android:scheme="browser" />
                </intent-filter>
            </activity>

    注:
           1. scheme不能是http或https;
           2. 通过data的path设置多个Activity区别;

     

  3. Google浏览器、QQ浏览器等可以输入:browser://www.niubashaoye/browserActivity?userName=牛八少爷&pwd=niuba123;
     
  4. 也可以通过<a href='browser://www.niubashaoye/browserActivity?userName=牛八少爷&pwd=niuba123'>浏览器启动App并传参</a>

本文标签: 浏览器 参数 Android App