帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
3
帖子
0
勋章
28
Y币

[superwebview] APIWebView与UIWebView有什么区别

[复制链接]
发表于 2016-4-28 16:04:32
看到头文件中,APIWebView派生自UIWebView,看到这篇帖子中官方人员给予的答复是,APIWebView又不支持单独使用,那APIWebView与UIWebView有什么区别呢?
看到有APIWebViewDelegate却又不是直接设置给APIWebView的,而是给APIManager使用的,如果想设置APIWebView的代理事件,也是需要APIManager做集中式的代理,这么做是为什么?




下面是个人理解:


(1)看到APIWebView头文件中包含了一些属性,用于记录所属的Container以及页面的name;
(2)提供了一个接口:- (void)sendResultWithCallbackNSInteger)callback retNSDictionary *)ret errNSDictionary *)err deleteBOOL)delete;来支持给JS发送消息;
(3)打印了APIWebView的方法列表如下:
        'APIWebView' has method named 'widgetContainer'
        'APIWebView' has method named 'windowContainer'
        'APIWebView' has method named 'webViewType'
        'APIWebView' has method named 'winName'
        'APIWebView' has method named 'sendResultWithCallback:ret:err:delete:'
        'APIWebView' has method named 'accessNative:'
        'APIWebView' has method named 'name'
        'APIWebView' has method named 'webView:didFailLoadWithError:'
        'APIWebView' has method named 'webView:shouldStartLoadWithRequest:navigationType:'
        'APIWebView' has method named 'webViewDidStartLoad:'
        'APIWebView' has method named 'webViewDidFinishLoad:'
        'APIWebView' has method named 'execute:'
方法不多,与webview代理相关的方法,应该是为了与APIManager进行通信;
sendResultWithCallback:ret:err:delete这个应该是用来与js进行通信(通过evaluate string的方式)
我的理解区别就是这么多,不知道还有什么区别,期待官方的解释。

28
帖子
1
勋章
1万+
Y币
本帖最后由 技术咨询-Kenny 于 2016-4-28 19:42 编辑

我们不建议直接使用APIWebView来加载页面,而是通过提供的widgetContainer、windowContainer来加载页面,这样能更好地使用更多的我们提供的扩展方法。
目前最新的sdk有修改,APIWebView提供了更多的方法,并且其派生自UIView对象。
3
帖子
0
勋章
28
Y币
技术咨询-Kenny 发表于 2016-4-28 19:36
我们不建议直接使用APIWebView来加载页面,而是通过提供的widgetContainer、windowContainer来加载页面,这 ...

请问APIWebView与Native通信使用的是UIWebViewDelegate的方式还是使用WebSocket进行进程间通信的方式?
看到代码里面有使用DCAsyncSocket,而APIWebView里面又有UIWebViewDelegate的实现,有此疑问
28
帖子
1
勋章
1万+
Y币
SsssuperWebView 发表于 2016-4-28 19:49
请问APIWebView与Native通信使用的是UIWebViewDelegate的方式还是使用WebSocket进行进程间通信的方式?
...

这是纯粹的js通过webView和native间的通信,不涉及socket这些。
3
帖子
0
勋章
28
Y币
技术咨询-Kenny 发表于 2016-4-28 20:10
这是纯粹的js通过webView和native间的通信,不涉及socket这些。

本来我也以为是用webviewdelegate做通信,类似于WebViewJavascriptBridge的方式,不过在js端使用new AlertView,看到调到UIAlertView的构造函数调用堆栈是这样
Screen Shot 2016-04-28 at 20.10.57.png
28
帖子
1
勋章
1万+
Y币
SsssuperWebView 发表于 2016-4-28 20:14
本来我也以为是用webviewdelegate做通信,类似于WebViewJavascriptBridge的方式,不过在js端使用new Aler ...

这些不是我们平台引擎的东西。关注如何使用即可,不用关心里面具体怎么样实现的。
3
帖子
0
勋章
28
Y币
技术咨询-Kenny 发表于 2016-4-28 20:28
这些不是我们平台引擎的东西。关注如何使用即可,不用关心里面具体怎么样实现的。 ...

这里有疑问,按照您说的,用jsbridge,拿到js需要调用的类名和方法名,利用ocruntime就可以调用到native的代码了,为啥调用堆栈是这个样子,有点奇怪
3
帖子
0
勋章
28
Y币
SsssuperWebView 发表于 2016-4-28 23:24
这里有疑问,按照您说的,用jsbridge,拿到js需要调用的类名和方法名,利用ocruntime就可以调用到native ...

抱歉,代码贴错了,了解了解~~~
3
帖子
0
勋章
28
Y币
技术咨询-Kenny 发表于 2016-4-28 20:28
这些不是我们平台引擎的东西。关注如何使用即可,不用关心里面具体怎么样实现的。 ...

抱歉,调用堆栈的代码贴错了,了解了解~~~
不过看到APIWebView支持混合渲染?还有半翻译式在运行时解析?这两个概念不是很理解,大神能帮忙解释下吗?
20
帖子
1
勋章
7583
Y币
SuperWebview是一整套解决方案,而不是做Android和IOS开发API文档中通常意义上Webview。
SuperWebview继承了Goolge和苹果webview的特性和接口,同时包含了APICloud Deep Engine的能力,包括跨平台能力,窗口系统,模块机制,云修复等等。
所以,详细看文档,理解一下SuperWebview的基本架构和能力很重要:http://docs.apicloud.com/APIClou ... w-guide-for-android
网站控制台动态编译SDK后,其中的Demo中有比较完整的使用示例了,包括事件交互,安全校验,url拦截等等。往后的版本中,我们会有越来越多更详细的API开放出来。
12下一页
您需要登录后才可以回帖 登录

本版积分规则