UIWebview与H5数据交互简记
2016-04-26 15:00
260 查看
2016-04-26 by 木易哥哥--Edward
#pragma mark- 返回上一级
- (void)backToPerView:(UIButton *)sender
{
if ([myWV
canGoBack]) {
[myWV
goBack];
}
else{
[self.navigationController
popViewControllerAnimated:YES];
}
}
#pragma mark-
监控H5点击按钮
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest
*)request navigationType:(UIWebViewNavigationType)navigationType{
if ([request.mainDocumentURL.relativePath
isEqualToString:@"/clicked"])
{
//具体分享逻辑
[self
loadDataForShareOrderWithDic:self.dic];
return
false;
//执行本地代码,返回false不让网页读取网络资源
}
return
true;
//为yes加载内容,否则不
}
#pragma mark- H5按钮配置逻辑
<button type="button"
id="btn-ios" class="send-coupon" onclick="shareIos();">分享好友领红包</button>
function
shareIos(){
var clicked = true;
window.location = "/clicked";
}
#pragma mark- 取H5传过来的值
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *str1 = [webView
stringByEvaluatingJavaScriptFromString:@"document.getElementById('fxnr').value;"];
NSString *dic = [NSJSONSerialization
JSONObjectWithData:[str1
dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingAllowFragments
error:nil];
NSDictionary *data = [NSJSONSerialization
JSONObjectWithData:[dic
dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingAllowFragments
error:nil];
self.dic = data[@"data"];
}
#pragma mark- H5传值配置
var
xhr = new XMLHttpRequest();
var token = window.location.search.substr(7);
var url = "/share/get_link.php?token="
+ token + "&type=3";
// var inputValue = "";
var shareValue = {};
console.log(token);
console.log(url);
xhr.onreadystatechange
= function(){
if(xhr.readyState ==
4 && xhr.status == 200){
console.log(xhr.responseText);
// for(var item in xhr.responseText){
// inputValue += xhr.responseText[item]
+ ";"
// }
shareValue = xhr.responseText;
document.getElementById("fxnr").value
= JSON.stringify(xhr.responseText);
}
}
xhr.open("GET", url,
true);
xhr.send();
#pragma mark- 返回上一级
- (void)backToPerView:(UIButton *)sender
{
if ([myWV
canGoBack]) {
[myWV
goBack];
}
else{
[self.navigationController
popViewControllerAnimated:YES];
}
}
#pragma mark-
监控H5点击按钮
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest
*)request navigationType:(UIWebViewNavigationType)navigationType{
if ([request.mainDocumentURL.relativePath
isEqualToString:@"/clicked"])
{
//具体分享逻辑
[self
loadDataForShareOrderWithDic:self.dic];
return
false;
//执行本地代码,返回false不让网页读取网络资源
}
return
true;
//为yes加载内容,否则不
}
#pragma mark- H5按钮配置逻辑
<button type="button"
id="btn-ios" class="send-coupon" onclick="shareIos();">分享好友领红包</button>
function
shareIos(){
var clicked = true;
window.location = "/clicked";
}
#pragma mark- 取H5传过来的值
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *str1 = [webView
stringByEvaluatingJavaScriptFromString:@"document.getElementById('fxnr').value;"];
NSString *dic = [NSJSONSerialization
JSONObjectWithData:[str1
dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingAllowFragments
error:nil];
NSDictionary *data = [NSJSONSerialization
JSONObjectWithData:[dic
dataUsingEncoding:NSUTF8StringEncoding]
options:NSJSONReadingAllowFragments
error:nil];
self.dic = data[@"data"];
}
#pragma mark- H5传值配置
var
xhr = new XMLHttpRequest();
var token = window.location.search.substr(7);
var url = "/share/get_link.php?token="
+ token + "&type=3";
// var inputValue = "";
var shareValue = {};
console.log(token);
console.log(url);
xhr.onreadystatechange
= function(){
if(xhr.readyState ==
4 && xhr.status == 200){
console.log(xhr.responseText);
// for(var item in xhr.responseText){
// inputValue += xhr.responseText[item]
+ ";"
// }
shareValue = xhr.responseText;
document.getElementById("fxnr").value
= JSON.stringify(xhr.responseText);
}
}
xhr.open("GET", url,
true);
xhr.send();
相关文章推荐
- Android 常用的颜色
- 五、抽象工厂模式
- 关于Android 6.0 WebView的两个问题
- iOS基础--通讯录
- iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
- 云之讯 导入视频sdk到android studio中报错
- 使用NSMutableAttributedString添加下划线、删除线、阴影、填充、不同字体颜色等
- Android App中自定义View视图的实例教程
- iOS 简单实用的圆形进度条
- 在导入design包以后,Android Studio R的问题
- [置顶] Android开发值利用Intent进行put传值,setclass启动activity,并用get进行取值
- Android应用如何做到多尺寸,多语言适配,为什么尺寸对了,表现却不对
- Android开发常用开源框架推荐
- cocos2dx scene的理解
- android 点击edittext外面,隐藏输入法
- 微信--H5非微信内浏览器支付
- Ecplise安装git及其使用
- iOS~runtime理解
- android handler机制
- runtime 运行时机制 完全解读