日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

ios UIWebView调用本地html和javascript,并且和ios通讯

發布時間:2025/3/19 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ios UIWebView调用本地html和javascript,并且和ios通讯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ios和android都提供了有關webview和javascript通訊的功能,這就使開發者根據手機的系統展示適合手機的界面,是界面開發更加簡單。

我的原型主要實現通過UIWebView展示本地的html、css、javascript文件,并且和ios互相通訊,用來展示數據。

下面是我實現的一個簡單demo,界面效果如下:

點擊連接調用ios中的提醒功能:

實現過程:

  • 首先創建一個工程,ipad.web1,編譯運行成功。
  • 實現webview的代碼:


#import

@interface ipad_web1ViewController : UIViewController
{
??? IBOutlet UIWebView *myWebView;
}
@property (nonatomic,retain) UIWebView *myWebView;
@end

相應的.m文件:

#import "ipad_web1ViewController.h"

@implementation ipad_web1ViewController
@synthesize myWebView;
- (void)viewDidLoad {
??? [super viewDidLoad];
??? self.myWebView.delegate=self;
????NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
??? [myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath: path]]];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
??? return YES;
}

- (void)didReceiveMemoryWarning {
??? [super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
??? self.myWebView=nil;
}

- (void)dealloc {
??? [self.myWebView release];
??? [super dealloc];
}
#pragma mark –
#pragma mark UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
?? if ( [request.mainDocumentURL.relativePath isEqualToString:@"/click/false"] ) {????
??????? NSLog( @"not clicked" );
??????? return false;
??? }
??? if ( [request.mainDocumentURL.relativePath isEqualToString:@"/click/true"] ) {??????? //the image is clicked, variable click is true
??????? NSLog( @"image clicked" );
??????? UIAlertView* alert=[[UIAlertView alloc]initWithTitle:@"JavaScript called"
???????????????????????????????????????????????????? message:@"You’ve called iPhone provided control from javascript!!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
??????? [alert show];
??????? [alert release];
??????? return false;
??? }
??? return true;
}
- (void)webViewDidStartLoad:(UIWebView *)webView
{
??? NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
??? NSLog(@"title11=%@",title);
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
????NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
??? NSLog(@"title=%@",title);
??? //添加數據
???[myWebView stringByEvaluatingJavaScriptFromString:@"var field = document.getElementById('field_2');"??
???? "field.value='Multiple statements - OK';"];
??? //[myWebView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"??
//???? "script.type = 'text/javascript';"??
//???? "script.text = \"function myFunction() { "??
//???? "var field = document.getElementById('field_3');"??
//???? "field.value='Calling function - OK';"??
//???? "}\";"??
//???? "document.getElementsByTagName('head')[0].appendChild(script);"];??
//????
//??? [myWebView stringByEvaluatingJavaScriptFromString:@"myFunction();"];??
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
}
@end

  • 最后在Interface Builder中添加UIwebView控件,并且和相應的實體相關聯。

???NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
??? NSLog(@"title=%@",title);

主要是獲取html文件的title名字。

[myWebView stringByEvaluatingJavaScriptFromString:@"var field = document.getElementById('field_2');"??
???? "field.value='Multiple statements - OK';"];

添加相應的表單信息。

  • 接下來添加index.html文件:

ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; color: #0071BB; outline-style: none; outline-width: initial; outline-color: initial;">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">


???
??? How to build an iPhone website
???
???
???
???
???
???
??? < type="text/javascript" src="test.js">
??

測試


?? click me
?? ??
?????


??
?????


??
?????


??
??? ??

  • 添加相應的css文件:

body {
??? background-color: #F2F5A9;
}

  • 添加相應的js文件:

function imageClicked(){
??? var clicked=true;
??? window.location="/click/"+clicked;
}

運行,點擊連接應該不出相應的對話框,說明相應的javascript沒有生效。修改辦法是打開targets,點擊ipad.web1,移動相應的test.js文件到下圖即可。

??
源代碼:http://easymorse-iphone.googlecode.com/svn/trunk/ipad.web1/

轉載于:https://www.cnblogs.com/zhuolaiqiang/archive/2011/06/24/2088911.html

總結

以上是生活随笔為你收集整理的ios UIWebView调用本地html和javascript,并且和ios通讯的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。