问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在WebApp中怎么使用JS调用iOS的函数

发布网友 发布时间:2022-05-03 05:09

我来回答

1个回答

热心网友 时间:2022-05-13 19:52

先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url。
Web中的HTML代码:
<html>
<head>
<script>

function getInfo(name)
{
window.location = "/getInfo/"+name;
}

</script>

</head>

<body>
<h1 onclick="getInfo('why')">Name</h1>
</body>

</html>

iOS中,先拖拽WebView,访问localhost,然后通过WebView的委托事件监听url跳转操作,并且把跳转截取下来。
也就是说,在onclick的时候,普通浏览器灰跳转到那个url,但是在iOS的这个WebView里面,这个跳转会被拦截,
用这种方式可以巧妙地实现JS调用iOS的原生代码:

//
//  DWViewController.m
//  DareWayApp
//
//  Created by why on 14-6-3.
//  Copyright (c) 2014年 DareWay. All rights reserved.
//

#import "DWViewController.h"

@interface DWViewController ()

@property (weak, nonatomic) IBOutlet UIWebView *myWebview;  // 主页面

@end

@implementation DWViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// 适配iOS6的状态栏
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        _myWebview.frame =  CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20);
    }

// 加载制定的URL
    NSURL *url =[NSURL URLWithString:@"http://localhost"];
    NSURLRequest *request =[NSURLRequest requestWithURL:url];
    [_myWebview setDelegate:self];
    [_myWebview loadRequest:request];

}

// 网页中的每一个请求都会被触发
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
      
    // 每次跳转时候判断URL
    
    if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"])
    {
        NSLog(@"why");
        return NO;
    }

return YES;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
系统进入bios。在这个界面如何关闭uefi启动。这里面点击哪个是设置为U ... ...一直在uefi bios utility-ez mode这个界面 这是什么问 停在uefi bios界面怎么办 五一是带薪休假吗 今年五一有几天带薪休假 2023五一假期是带薪假吗-五一法定节假日是几天带薪 文徵明书乐志论目录 傅山草书孟浩然诗卷释文 我老公是1985年4月17日我是1987年3月初六。我们生辰相克? 87炉中火命女和85大海金命男结婚好吗?什么时候好! 高分悬赏 IE主页被恶意修改为dh818.com怎么办 IOS调用html中js函数,但是,页面启动了,函数没有执行,不知道怎么回事 小学教师资格证考试音乐教学设计《牧童》 ios开发 ats 会影响 调用js方法吗 自解压格式软件时解压的临时文件放在哪? 如何实现网页代码(JS/HTML)和IOS应用程序交互 我的世界ios怎么用js 我的世界ios系统怎么用js? JS怎么样调用IOS并且传递参数? ios中怎么调用js并拿到返回值 焊接生铁用不锈钢的可以吗 不锈钢和生铁在一起会腐蚀的更快 教师资格证没去考试下次还能考吗 汽车换下来的CD机收音机怎么处理 农业银行理财持仓金额一直没涨 老鸭汤怎样煲才好喝? 汽车上的音响拆下来之后怎么利用? 生铁 普通钢,不锈钢的碳含量 五菱宏光上的收音机带usb的,尾线有十二根线,不知道怎么接,在车上拆下来放家里用家里用的 农业银行理财最近一周钱没增反减什么情况 福建沙县小吃那老鸭汤里放的是什么中草药 解压缩的文件临时存在哪里 JS怎么样调用IOS并且传递参数 解压缩时文件会放到一个临时文件夹里,应该默认是c盘,我解压缩一个60g的游戏 ,压缩包和解压缩出来 求Amber 刘逸云的other people mp3百度云资源,谢谢? RAR默认解压临时文件夹 下载文件是个压缩包,,,说下载到临时文件夹,,解压之后还想找临时文件夹,,但找不到 小学四年级音乐牧童这首歌表达了怎么样的思想感情 JS和IOS进行交互 winrar解压到临时文件夹怎么设置相对路径 ios 能兼容所有js语言么,比如jquery iOS开发 怎么实现js调取oc中的方法 为什么解压文件的时候需要先把文件放在临时文件夹里面然后才转移到指定的目录呢? winRAR解压的临时文件保存到哪? 解压缩时为什么会先解压到系统盘的临时文件夹,然后再复制到目标文件夹呢, 听牧童的一首歌,是这个,朝霞里 牧童在吹小笛~的 被删除的短信息怎么恢复、免费的方法! 红米K305g高清语音通话从哪里开关? 小米K305g夜间自拍怎样打开灯光? 房贷还款迟还一个月有什么影响没 璀璨人生2第二集&lt;高清HD中字&gt;土豆清晰_凤凰SOS搜索-哪里更新了啊?