前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >App与WebView交互方式

App与WebView交互方式

原创
作者头像
SheltonWan
修改于 2019-08-15 02:15:48
修改于 2019-08-15 02:15:48
1.5K0
举报

1、让Webview响应App的行为,可以通过调用函数:evaluateJavaScript:completionHandler:

参数javaScriptString是一个字符串,需要与前端协商好对应html中js定义的对象及函数,譬如

NSString *script = [NSString stringWithFormat:@“obj.jsmethod(‘%@‘)”, parmeter];

obj——html中script中定义的对象。

jsmethod——html中script中定义的函数。

parmeter——我们要传递给WKWebview中的参数,通常用NSJSONSerialization转化为字符串来传递。

通过执行函数evaluateJavaScript:completionHandler:,我们可以传递app端中的数据给webview,并触发html脚本函数的调用,从而响应app的行为。

2、webview如何调用app端的函数呢?

在html的脚本中添加iframe对象,通过设置iframe的src属性,可成功触发WKWebview中的代理方法调用。

webView:decidePolicyForNavigationAction:decisionHandler:

常见的方式就是在脚本函数中设置iframe的src属性值,触发WKWebview的代理函数调用,

我们可以在代理方法中拦截请求,首先iframe的src的值也就是我们自定义的scheme,通过对该scheme的判断来得知我们想干什么,从而去调用app中对应的函数。除了可以在自定义scheme中传递我们需要的参数外,我们可以在html中的脚本中把数据储存好,通过evaluateJavaScript:completionHandler:来调用脚本函数来返回需要的参数。该参数会在completionHandler的回调函数中以字符串返回,通常是用NSJSONSerialization来解析。

具体如何通过WKWebview传递过来的数据来判断该执行哪个函数,有一种实现方式:

用一个字典来储存对应函数地址,这样我们可以通过传递过来的key来获得对应的函数。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
上一章介绍了为包含基本字段的模型创建自定义视图。然而,在任何真实的业务场景中,我们都需要不止一个模型。此外,模型之间的链接是必要的。人们可以很容易地想象一个模型包含客户,另一个模型则包含用户列表。你可能需要参考任何现有业务模型上的客户或用户。
授客
2023/04/01
4.7K0
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
odoo 开发入门教程系列-安全-简介
前一章中我们已经创建了第一个打算用于存储业务数据的表。在odoo这样的一个商业应用中,第一个考虑的问题就是谁(Odoo 用户(或者组用户))可以访问数据。odoo为指定用户组用户提供了一个安全的数据访问机制。
授客
2023/03/26
1K0
Odoo 菜单定义和修改学习总结
指定菜单图标,格式:模块名称,图标路径,形如estate,static/img/icon.png 意为estate模块下的static/img/icon.png图标。其中图标路径,一般是相对于模块根目录的相对路径
授客
2023/02/26
1.5K0
odoo 开发入门教程系列-继承(Inheritance)
Odoo的一个强大方面是它的模块化。模块专用于业务需求,但模块也可以相互交互。这对于扩展现有模块的功能非常有用。例如,在我们的房地产场景中,我们希望在常规用户视图中直接显示销售人员的财产列表。
授客
2023/04/23
2.5K0
odoo 开发入门教程系列-继承(Inheritance)
odoo ORM API学习总结兼orm学习教程
默认的,字段的标签(Lable,即用户可见字段名称)为对应字段名称开头字母改成大写后的值,可通过 string 字段属性改成修改字段Label
授客
2023/03/12
14K0
odoo ORM API学习总结兼orm学习教程
odoo 开发入门教程系列-QWeb简史
到目前为止,我们的房地产模块的界面设计相当有限。构建列表视图很简单,因为只需要字段列表。表单视图也是如此:尽管使用了一些标记,如<group>或<page>,但在设计方面几乎没有什么可做的。
授客
2023/04/28
2.4K0
odoo 开发入门教程系列-QWeb简史
odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)
模型之间的关系是任何Odoo模块的关键组成部分。它们对于任何业务案例的建模都是必要的。然而,我们可能需要给定模型中字段之间的链接。有时,一个字段的值是根据其他字段的值确定的,有时我们希望帮助用户输入数据。
授客
2023/04/02
3.4K0
odoo 开发入门教程系列-计算的字段和变更(Computed Fields And Onchanges)
odoo wizard界面显示带复选框列表及勾选数据获取
如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的"选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)的列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。
授客
2023/05/24
5.6K0
odoo wizard界面显示带复选框列表及勾选数据获取
odoo 开发入门教程系列-一个新应用
form视图顶层区域概括了房产的重要信息,比如name,Property Type, Postcode等等。
授客
2023/03/25
1.4K0
odoo 开发入门教程系列-一个新应用
odoo 开发入门教程系列-一些用户界面
上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便的,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。比如包含HTML tags的 help field。虽然可以通过CSV文件加载这样的数据,但是使用XML更方便。
授客
2023/03/26
3.3K0
odoo 开发入门教程系列-一些用户界面
odoo context上下文用法总结
Model.with_context([context][, **overrides]) -> records[源代码]
授客
2023/03/09
2.3K0
odoo 给列表视图添加按钮实现数据文件导入
odoo14\custom\estate\models\estate_customer.py
授客
2023/02/26
3.7K0
odoo 给列表视图添加按钮实现数据文件导入
odoo 开发入门教程系列-模块交互
在上一章中,我们使用继承来修改模块的行为。在我们的房地产场景中,我们希望更进一步,能够为客户生成发票。Odoo提供了一个开发票模块,因此直接从我们的房地产模块创建发票是很简单的,也就是说,一旦某个房产设置为“已售出”,就会在Invoicing应用程序中创建发票
授客
2023/04/24
1.9K0
odoo 开发入门教程系列-模块交互
odoo 开发入门教程系列-基本视图
在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。
授客
2023/03/27
3.6K0
odoo 开发入门教程系列-基本视图
odoo Actions学习总结
action可以存储在数据库中,也可以作为字典直接返回,例如按钮方法。所有Action都有两个强制属性:
授客
2023/03/09
2.9K0
odoo 开发入门教程系列-模型和基本字段
在上一章的末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。在我们的房地产模块中,我们希望将与房地产相关的信息(名称(name)、描述(description)、价格(price)、居住面积(living area)…)存储在数据库中。odoo框架提供了数据库交互的工具
授客
2023/03/25
2.6K0
odoo 开发入门教程系列-模型和基本字段
odoo 开发入门教程系列-约束(Constraints)
上一章介绍了向模型中添加一些业务逻辑的能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误的数据?例如,在我们的房地产模块中,没有什么可以阻止用户设置负预期价格。
授客
2023/04/08
1.7K0
odoo 开发入门教程系列-约束(Constraints)
odoo 给form表单视图内联列表添加按钮
odoo14\custom\estate\models\estate_customer.py
授客
2023/02/26
1.6K0
odoo 给form表单视图内联列表添加按钮
Salesforce学习 权限管理
Salesforce 对于权限的管理是非常严谨的并且支持不同维度的权限控制。常用的有Profiles(简档)、Permissions Set(权限集)、Role Hierarchy(角色层级结构)和Organization-Wide(组织范围)这四项用来控制控制相应的权限。
repick
2020/01/23
2.4K0
odoo 为form表单视图添加chatter功能
如图,给表单新增一个类似聊天的窗口,当记录一些表单活动(本例为自动记录当前记录状态变化)
授客
2023/02/26
8690
odoo 为form表单视图添加chatter功能
推荐阅读
相关推荐
odoo 开发入门教程系列-模型之间的关系(Relations Between Models)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档