通过点击网页中支付功能开启本地android应用
2015-06-08 14:17
525 查看
1.1新建android应用,命名为demo,在MainActivity.java中使用控件WebView打开盛大云测试URL:http://m.grandcloud.cn/,即可在手机端访问盛大云测试网站。
1.2在android应用AndroidManifest.xml中想要启动的Activity中加入如下代码(这里是TestActivity.java):
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT" />
<categoryandroid:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp"android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>
其中,各个项目含义如下所示:
scheme:判别启动的App,该项必须填写
host:适当记述,该项可以不填写
path:传值时必须的key,没有也可以
query:获取值的Key和Value,没有也可以
1.3 在web端搭建了测试后台,在jsp页面中加入启动应用链接并传入参数,如下所示:
<a href=”myapp://jp.app/openwith?username=zhangsan&userpass=123”>打开app</a>
1.4 运行测试后台,点击打开app,即可调用应用中TestActivity.java,并且在该Activity中可以接收参数,代码如下:
Intent i_getvalue =getIntent();
String action =i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = i_getvalue.getData();
if(uri !=
null){
String username =uri.getQueryParameter("username");
String userpass= uri.getQueryParameter("userpass");
username_tv.setText(username);
userpass_tv.setText(userpass);
Toast.makeText(TestActivity.this, username+""+userpass, Toast.LENGTH_SHORT).show();
}
}
第一步经过测试成功,即在手机端网页中点击链接是可以开启本地应用组件,并且接收参数,这样就可以进行下一步调用微信进行在线支付了。
1.2在android应用AndroidManifest.xml中想要启动的Activity中加入如下代码(这里是TestActivity.java):
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT" />
<categoryandroid:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp"android:host="jp.app" android:pathPrefix="/openwith"/>
</intent-filter>
其中,各个项目含义如下所示:
scheme:判别启动的App,该项必须填写
host:适当记述,该项可以不填写
path:传值时必须的key,没有也可以
query:获取值的Key和Value,没有也可以
1.3 在web端搭建了测试后台,在jsp页面中加入启动应用链接并传入参数,如下所示:
<a href=”myapp://jp.app/openwith?username=zhangsan&userpass=123”>打开app</a>
1.4 运行测试后台,点击打开app,即可调用应用中TestActivity.java,并且在该Activity中可以接收参数,代码如下:
Intent i_getvalue =getIntent();
String action =i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = i_getvalue.getData();
if(uri !=
null){
String username =uri.getQueryParameter("username");
String userpass= uri.getQueryParameter("userpass");
username_tv.setText(username);
userpass_tv.setText(userpass);
Toast.makeText(TestActivity.this, username+""+userpass, Toast.LENGTH_SHORT).show();
}
}
第一步经过测试成功,即在手机端网页中点击链接是可以开启本地应用组件,并且接收参数,这样就可以进行下一步调用微信进行在线支付了。
相关文章推荐
- 解决javah生成.h头文件找不到找不到android.support.v7.app.AppCompatActivity的问题
- Android中自定义权限permission
- Android如何防止apk程序被反编译
- Activity之间利用Bundle传递数据的大小
- Android APK反编译就这么简单 详解(附图)
- Android Init Language
- Android 装置CTS与GMS认证差异
- Android的init过程(二):初始化语言(init.rc)解析
- [Android Studio 权威教程]最实用的快捷键
- android 在一个应用中启动另一个应用
- Android 官方命令深入分析之Android Debug Bridge(adb)
- 【搬运-兄弟别怪我】两分钟彻底让你明白Android Activity生命周期(图文)!
- Android 官方命令深入分析之Android Debug Bridge(adb)
- android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
- android使用c通过jni回调java
- android studio 不同渠道打包
- (图片处理)Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解
- Android LinearLayout中TextView标签项自动换行的一种解决方案
- 三年Android 开发习惯
- android URL中含有汉字问题解决