webview与js的通信
来源:互联网 发布:go json双引号转义 编辑:程序博客网 时间:2024/06/04 20:04
JS是操作网页的利器,利用好JS才能真正在应用中随心所欲的操作网页。核心方法:stringByEvaluatingJavaScriptFromString
(void)viewDidLoad
{
[super viewDidLoad];[self loadRemoteHTML];
}强调内容
pragma mark 加载远程的HTML页面
(void)loadRemoteHTML {
NSURL *url = [NSURL URLWithString:@”http://192.168.1.106:8080/MJServer/“];self.webView.delegate = self;
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}
pragma mark 加载其他文件
(void)loadRemoteTxt {
NSURL *url = [NSURL URLWithString:@”http://192.168.1.106:8080/MJServer/abc.txt“];self.webView.delegate = self;
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}
pragma mark 加载PDF文件
(void)loadLocalPDF {
//[self.webView loadData:<#(NSData )#> MIMEType:<#(NSString )#> textEncodingName:<#(NSString )#> baseURL:<#(NSURL )#>];NSURL *url = [NSURL fileURLWithPath:@”/Users/apple/Desktop/第10章-网络.pdf”];
self.webView.delegate = self;
[self.webView loadRequest:[NSURLRequest requestWithURL:url]];
}
pragma mark 加载HTML字符串
- (void)loadHTMLString {
NSURL *url = [NSURL fileURLWithPath:@”/Users/apple/Pictures”];
[self.webView loadHTMLString:@”” baseURL:url];
}
pragma mark - webview代理方法
(void)webViewDidStartLoad:(UIWebView *)webView {
NSLog(@”开始加载页面”);
[MBProgressHUD showMessag:@”哥正在帮你加载…” toView:self.view];
}(void)webViewDidFinishLoad:(UIWebView *)webView {
NSLog(@”页面加载完毕”);
[MBProgressHUD hideHUDForView:self.view animated:YES];self.backItem.enabled = self.webView.canGoBack;
self.forawrdItem.enabled = self.webView.canGoForward;self.titleItem.title = [self.webView stringByEvaluatingJavaScriptFromString:@”document.title”];
//[self.webView stringByEvaluatingJavaScriptFromString:@”fn();”];
}
pragma mark webview每次加载之前都会调用这个方法
当需要在这个UIWebview加载的视图中在点击进入其它h5界面时,也需要在这个方法里面截取url 请求加载界面
// 如果返回NO,代表不允许加载这个请求
- (BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType {
***********************************
NSString *rightUrl = request.URL.absoluteString;
NSRange range = [rightUrl rangeOfString:_urlSuffix];//带?
NSRange range2 = [rightUrl rangeOfString:_urlSuffix2];//不带?
NSRange range3 = [rightUrl rangeOfString:@”?”];
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@”isQQReloadView”];
if (range3.location == NSNotFound && range.location == NSNotFound) {//没有问号,没有问号后缀
[self.webView loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:[rightUrl stringByAppendingString:_urlSuffix]]]];
// [self doIfInWebWithUrl:rightUrl];
return YES;
}else if (range3.location != NSNotFound && range2.location == NSNotFound ){//有问号没有后缀
[self.webView loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:[rightUrl stringByAppendingString:_urlSuffix2]]]];
// [self doIfInWebWithUrl:rightUrl];
return YES;
************************************
// 说明协议头是ios
if ([@”ios” isEqualToString:request.URL.scheme]) {
NSString *url = request.URL.absoluteString;
NSRange range = [url rangeOfString:@”:”];
NSString *method = [request.URL.absoluteString substringFromIndex:range.location + 1];
SEL selector = NSSelectorFromString(method); if ([self respondsToSelector:selector]) { [self performSelector:selector]; } return NO;}return YES;
}
pragma mark - 提供一个接口方法给JS调用
(void)openCamera {
NSLog(@”打开了照相机”);
}(void)call {
NSLog(@”打电话”);
}
pragma mark - 按钮方法
pragma mark 前进
- (void)forawrd {
[self.webView goForward];
}
pragma mark 后退
- (void)back {
[self.webView goBack];
}
@end
- webview与js的通信
- webview与js的通信框架
- webview与js的通信框架
- iOS WebView与js通信
- webView 高级用方法 二 webview与js的通信框架
- Android WebView Java与Js通信
- Android WebView与js交互通信
- WebView与js的交互
- js与webView的交互
- WebView 与 JS 的交互
- webView 与 JS 的交互
- WebView与Js的交互
- webview与js的交互
- 关于RN与webview的简单通信
- 关于 React Native 与 WebView 的通信
- Android WebView js 与 java 之间相互通信
- Android WebView 中 JS 与Java之间通信
- reactnative 与webview通信
- NYOJ587 blockhouses【DFS】
- 安卓中定时器和线程的使用
- mysql 解决 emoji 表情存储问题-note
- JXLS-----JXLS导出Excel
- HTML <img> 标签
- webview与js的通信
- opencv中keypoint数据结构分析
- 项目安全性问题总结
- 系统级性能分析工具 — Perf
- Unity3d 中的Mathf 运算
- 编译GCC-4.8出现的错误 —— Linux gnu/stubs-32.h: No such file or directory
- 1084:写出来吧
- js Date 日期格式化
- NSURLCache、网络监测状态