如何解决app内嵌网页系统浏览器访问网页时无法加载js

查看: 1898|回复: 8
关于 超文本浏览框 调用含有js页面无法显示 求助
阅读权限10
结帖率: (0/1)
我需要打开一个网页。。代码很简单。&table class=&summary& cellpadding=&0& cellspacing=&0& border=&0&&&tr&&td valign=&top& align=&left&&&script src=&.cn/img/2010tv_flash/showmLivePlayer.&&&/script&
&script&show18mliveplayer({s:&s1&,width:&100%&,height:&100%&});&/script&&br&&/td&&/tr&&/table&复制代码是个cctv13的在线直播。& && &本地打开 1.html 没问题,&&但用的 超文本浏览框 打开就无法显示。 查询了论坛 貌似是因为有js的原因。 看到有人说 用,搞了半天也没搞明白。
&&窗口程序集名保 留&&保 留备 注窗口程序集1&&&__启动窗口_创建完毕&&超文本浏览框1.地址 = “D:\1.html”HtmlView超文本浏览框支持库
.版本 2
.支持库 HtmlView
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
超文本浏览框1.地址 = “D:\1.html”
望指点一二。 谢谢!!
回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至
可获得加分喔。友情提醒:本版被采纳的主题可在
帖子申请荣誉值,获得 1点 荣誉值,荣誉值可兑换终身vip用户组哦。快捷通道: →
阅读权限165
签到天数: 2 天结帖率: (5/5)
没办法,不想弹出JS就设置静默为真吧
您可以选择打赏方式支持他
阅读权限30
超文本浏览框不支持
您可以选择打赏方式支持他
阅读权限165
签到天数: 3 天结帖率: (11/11)
你是想打开视频?还是读取文件内容?
您可以选择打赏方式支持他
阅读权限165
签到天数: 3 天结帖率: (11/11)
你想用你这样的,建议你搜索ckplayer&&看看或许能帮助到。
您可以选择打赏方式支持他
阅读权限165
签到天数: 1 天结帖率: (2/3)
易语言浏览器不支持这种方式哦。
您可以选择打赏方式支持他
阅读权限10
结帖率: (0/1)
谢谢各位的帮助。。
我是想打开视频。&&打开工具 就播放新闻联播。。 用什么方式实现都可以。
您可以选择打赏方式支持他
阅读权限50
签到天数: 2 天结帖率: (2/4)
我也在研究这个呢,但是不明白
您可以选择打赏方式支持他
阅读权限90
签到天数: 17 天
现在的新人都如此强大了哟,真的受不了
您可以选择打赏方式支持他
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,企业QQ: ,邮箱:@
Powered by
粤公网安备 25有什么方式或者浏览器插件可以在浏览器载入网页之前插入一段自己的javascript脚本? - 知乎44被浏览9127分享邀请回答{
"name": "My extension",
"content_scripts": [
"matches": ["/*"],
"css": ["mystyles.css"],
"js": ["jquery.js", "myscript.js"]
如果只是在某些情况下需要注入,可以使用字段,详见。{
"name": "My extension",
"permissions": [
"tabs", "/*"
使用 content_scripts 字段,一个扩展可以向一个页面注入多个content_script脚本;每个content script脚本可以包括多个javascript脚本和css文件。content_script字段中的每一项都可以包括下列属性:NameTypeDescriptionmatchesarray of strings必须。 定义哪些页面需要注入content script。查看以了解详细语法。cssarray of strings可选。需要向匹配页面中注入的CSS文件。这些文件将在页面的DOM树创建和显示之前,按照定义的顺序依次注入。jsarray of strings可选。 需要向页面中注入的javascript文件,按定义顺序注入。run_atstring可选。 控制content script注入的时机。可以是document_start, document_end或者document_idle。缺省时是document_idle。如果是document_start, 文件将在所有CSS加载完毕,但是没有创建DOM并且没有运行任何脚本的时候注入。如果是document_end,则文件将在创建完DOM之后,但还没有加载类似于图片或frame等的子资源前立刻注入。如果是document_idle,浏览器会在document_end和发出事件之间的某个时机注入。具体的时机取决与文档加载的复杂度,为加快页面加载而优化。注意:在document_idle的情况下,content script不一定会接收到window.onload事件,因为它有可能在事件发出之后才加载。在大多数情况下, 在content script中监听onload事件是不必要的,因为浏览器会确保在DOM创建完成后才执行它。 如果一定要在window.onload的时候运行,可以通过属性来检查onload事件是否已经发出。all_framesboolean可选。控制是在匹配页面的所有frame中运行还是只在最上层的frame中运行。缺省是false,也就是只在最上层frame中运行。include_globsarray of string可选。控制将content_script注入到哪些匹配的页面中。模拟Greasemonkey中的@include关键字。 详细信息可以查看下面的。exclude_globsarray of string可选。控制将content_script注入到哪些匹配的页面中。模拟Greasemonkey中的@exclude关键字。 详细信息可以查看下面的。Include和exclude语句一个content script被注入页面的条件是: 页面url匹配任意一条match模式, 并且匹配任意一条include glob模式,并且不匹配任何exclude glob模式。 由于matches属性是必选的,因此include glob和exclude glob都只能用来限制哪些匹配的页面会被影响。另外, 这两个属性与matches属性的语法是不同的, 它们更灵活一些。 在这两个属性中可以包含*号和?号作为通配符。 其中*可以匹配任意长度的字符串,而?匹配任意的单个字符。例如,语句"*"" 可以匹配下面的所有情况:""""但是它不能匹配下面的这些情况:""""""编程式注入如果不需要将javascript 和css注入到每一个匹配的网页里面,可以通过程序来控制代码的注入。 例如, 可以只在用户点击了一个browser action图标后才注入脚本。如果要将代码注入页面,扩展必须具有, 还必须可以使用chrome.tabs模块。 可以通过在manifest文件的字段里声明来取得这些权限。一旦设置好了权限,就可以通过调用来注入javascript脚本。如果要注入css,可以调用。下面的代码(见例子) 演示了点击按钮后向当前标签的页面中注入并执行javascript代码。/* in background.html */
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.executeScript(null,
{code:"document.body.bgColor='red'"});
/* in manifest.json */
"permissions": [
"tabs", "http://*/*"
当浏览器显示一个http网页并且用户点击了扩展的browser action按钮后,扩展会将页面的bgcolor属性设置为红色。 如果这个页面没有用css设置它的背景颜色的话, 它会变成红色。一般来说,可以将代码放在文件里面而不是像上面那个例子那样直接注入。 可以这样写:chrome.tabs.executeScript(null, {file: "content_script.js"});
执行环境Content script是在一个特殊环境中运行的,这个环境成为isolated world(隔离环境)。它们可以访问所注入页面的DOM,但是不能访问里面的任何javascript变量和函数。 对每个content script来说,就像除了它自己之外再没有其它脚本在运行。 反过来也是成立的: 页面里的javascript也不能访问content script中的任何变量和函数。例如,这个简单的页面:hello.html
==========
&button id="mybutton"&click me&/button&
var greeting = "hello, ";
var button = document.getElementById("mybutton");
button.person_name = "Bob";
button.addEventListener("click", function() {
alert(greeting + button.person_name + ".");
}, false);
现在,将下面这个脚本注入hello.html:contentscript.js
================
var greeting = "hola, ";
var button = document.getElementById("mybutton");
button.person_name = "Roberto";
button.addEventListener("click", function() {
alert(greeting + button.person_name + ".");
}, false);
然后,如果按下按钮, 可以同时看到两个问候。隔离环境使得content script可以修改它的javascript环境而不必担心会与这个页面上的其它content script冲突。 例如,一个content script可以包含JQuery v1而页面可以包含JQuery v2, 它们之间不会产生冲突。另一个重要的优点是隔离环境可以将页面上的脚本与扩展中的脚本完全隔离开。这使得开发者可以在content script中提供更多的功能,而不让web页面利用它们。与嵌入的页面通信尽管content script的执行环境与所在的页面是隔离的,但它们还是共享了页面的DOM。 如果页面需要与content script通信(或者通过content script与扩展通信), 就必须通过这个共享的DOM。下面这个例子是通过自定义的DOM事件和把数据放到固定的地方来实现的:/example.html
===========================
var customEvent = document.createEvent('Event');
customEvent.initEvent('myCustomEvent', true, true);
function fireCustomEvent(data) {
hiddenDiv = document.getElementById('myCustomEventDiv');
hiddenDiv.innerText = data
hiddenDiv.dispatchEvent(customEvent);
contentscript.js
================
var port = chrome.extension.connect();
document.getElementById('myCustomEventDiv').addEventListener('myCustomEvent', function() {
var eventData = document.getElementById('myCustomEventDiv').innerT
port.postMessage({message: "myCustomEvent", values: eventData});
在上面的例子中,html页面(不属于扩展)创建了一个自定义事件, 当它向DOM中的一个特定元素写入事件数据后就会激活并派发这个自定义事件。 Content script在这个特定元素上监听这个自定义事件, 从这个元素中获取数据,并向扩展进程post一个消息。 通过这种方式, 页面建立了与扩展的通信链接。 这个方法也适用于反向的通信。安全性在写content script的时候,有两个安全问题必须注意。 首先, 要小心不要给原页面带来新的安全漏洞。 例如, 如果content script要从其它网站获取数据(比如), 在将数据注入前,应该进行处理以防止攻击,比如用innerText注入而不是用innerHTML注入。特别要小心的是在一个HTTPS的页面上获取HTTP的内容,因为这个内容很可能是被人用方式破坏过的。其次,尽管在独立环境中运行content script的机制已经提供了一些保护,如果不加区分的使用web页面上的内容还是可以被恶意的web页面攻击的。contentscript.js
================
var data = document.getElementById("json-data")
// WARNING! Might be evaluating an evil script!
var parsed = eval("(" + data + ")")
contentscript.js
================
var elmt_id = ...
// WARNING! elmt_id might be "); ... evil script ... //"!
window.setTimeout("animate(" + elmt_id + ")", 200);
建议使用安全一些的API:contentscript.js
================
var data = document.getElementById("json-data")
// JSON.parse does not evaluate the attacker's scripts.
var parsed = JSON.parse(data)
contentscript.js
================
var elmt_id = ...
// The closure form of setTimeout does not evaluate scripts.
window.setTimeout(function() {
animate(elmt_id);
引用扩展里的文件通过chrome.extension.getURL()来获取扩展里文件的URL。可以像使用其它url一样使用这些URL,如下面的例子所示://Code for displaying /images/myimage.png:
var imgURL = chrome.extension.getURL("images/myimage.png");
document.getElementById("someImage").src = imgURL;
例子例子显示了一个扩展如何从content script里进行cross-site请求。可以在 里的消息通信部分找到更多例子。可以看 和 这两个例子了解程序注入。更多例子和源代码,可以查看.103 条评论分享收藏感谢收起52 条评论分享收藏感谢收起1 个回答被折叠()IE浏览器不能运行js JS代码失效不能运行了如何解决
作者:佚名
字体:[ ] 来源:互联网 时间:02-20 16:39:23
IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办,一些网站里面的js特效不能使用了,一些效果都没法显示出来。
IE不能运行js,在IE浏览器js代码失效,js不能运行了怎么办,一些网站里面的js特效不能使用了,一些效果都没法显示出来。如果你的IE不能打开js脚本(连系统里所有的js文件都不运行,网页上的js广告或好多页面都显示不了),请按一下步骤进行排查与解决:1.查看是否IE的安全里面禁止了JS的运行:将工具=&internet选项==&高级=&禁止脚本调试去勾,显示脚本显示提示打上勾,如果还没反应 2.看是否装了杀毒软件禁止了用程序打开窗口,检查设置.3.手动修复IE浏览器:开始&运行,分别输入以下内容:regsvr32 Shdocvw.dll ==》确定regsvr32 Oleaut32.dll ==》确定regsvr32 Actxprxy.dll ==》确定regsvr32 Mshtml.dll ==》确定regsvr32 Urlmon.dll ==》确定regsvr32 browseui.dll ==》确定作用:a、同时运行以上命令不仅可以解决IE不能打开新的窗口,用鼠标点击超链接也没有任何反应的问题;b、还能解决大大小小的其它IE问题,比如网页显示不完整,JAVA效果不出现,网页不自动跳转,打开某些网站时总提示&无法显示该页&等。4.如果还是不行,应该是JS脚本没有注册或者JS脚本被卸载的原因开始&运行,输入以下内容:输入 regsvr32 jscript.dll ==》确定输入regsvr32 vbscript.dll==》确定5.如果以上设置没有问题或是还不能解决js脚本不执行的问题,请把以下代码用记事本的形式编写,而后再以*.bat的后缀保存.rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\System32\dacui.dllrundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\Catroot\icatalog.mdbregsvr32 /s comcat.dllregsvr32 /s asctrls.ocxregsvr32 /s oleaut32.dllregsvr32 /s shdocvw.dll /Iregsvr32 /s shdocvw.dllregsvr32 /s browseui.dllregsvr32 /s browseui.dll /Iregsvr32 /s msrating.dllregsvr32 /s mlang.dllregsvr32 /s hlink.dllregsvr32 /s mshtml.dllregsvr32 /s mshtmled.dllregsvr32 /s urlmon.dllregsvr32 /s plugin.ocxregsvr32 /s sendmail.dllregsvr32 /s mshtml.dll /iregsvr32 /s scrobj.dllregsvr32 /s corpol.dllregsvr32 /s jscript.dllregsvr32 /s msxml.dllregsvr32 /s imgutil.dllregsvr32 /s cryptext.dllregsvr32 /s inseng.dllregsvr32 /s IEsetup.dll /iregsvr32 /s cryptdlg.dllregsvr32 /s actxprxy.dllregsvr32 /s dispex.dllregsvr32 /s occache.dllregsvr32 /s IEpeers.dllregsvr32 /s urlmon.dll /iregsvr32 /s cdfvIEw.dllregsvr32 /s webcheck.dllregsvr32 /s mobsync.dllregsvr32 /s pngfilt.dllregsvr32 /s licmgr10.dllregsvr32 /s hhctrl.ocxregsvr32 /s inetcfg.dllregsvr32 /s trialoc.dllregsvr32 /s tdc.ocxregsvr32 /s MSR2C.DLLregsvr32 /s msident.dllregsvr32 /s msIEftp.dllregsvr32 /s xmsconf.ocxregsvr32 /s ils.dllregsvr32 /s msoeacct.dllregsvr32 /s wab32.dllregsvr32 /s wabimp.dllregsvr32 /s wabfind.dllregsvr32 /s oemiglib.dllregsvr32 /s directdb.dllregsvr32 /s inetcomm.dllregsvr32 /s msoe.dllregsvr32 /s oeimport.dllregsvr32 /s msdxm.ocxregsvr32 /s dxmasf.dllregsvr32 /s laprxy.dllregsvr32 /s l3codecx.axregsvr32 /s acelpdec.axregsvr32 /s mpg4ds32.axregsvr32 /s danim.dllregsvr32 /s Daxctle.ocxregsvr32 /s lmrt.dllregsvr32 /s datime.dllregsvr32 /s dxtrans.dllregsvr32 /s dxtmsft.dllregsvr32 /s wshom.ocxregsvr32 /s wshext.dllregsvr32 /s vbscript.dllregsvr32 /s scrrun.dll mstinit.exe /setupregsvr32 /s msnsspc.dll /SspcCreateSspiRegregsvr32 /s msapsspc.dll /SspcCreateSspiRegecho 修复成功!任意键退出!pause&nul接下来要做的就是,双击这个bat文件,然后重新启动.你的IE又能像以前一样显示网站中的JS文件或JS脚本了:)一般第二种方法解决一切问题 ,我是用第二种 简单 快捷方便
大家感兴趣的内容
12345678910
最近更新的内容& & & & 如果一个网站已经有现成的网页及业务逻辑,那么使用WebView将其内嵌到app中,省去了app重画页面与http通信的事情,无疑是更经济的做法。WebView就是Android上的一个浏览器内核,可自动展示web页面,并且实现js代码的相互调用。
下面是WebView的常用方法:
getSettings : 获取浏览器的web设置信息。
addJavascriptInterface : 添加本地的js代码接口。
removeJavascriptInterface : 移除本地的js代码接口。在4.0至4.2的Android系统上,Webview自己增加了searchBoxJavaBredge_,可能被黑客利用导致远程代码执行。为阻止该漏洞,需要手工移除接口searchBoxJavaBredge_。代码如下所示:
setWebViewClient : 设置浏览器的加载事件。
setWebChromeClient : 设置浏览器的交互事件。
setDownloadListener : 设置文件下载监听器。
loadData : 加载文本数据。第二个参数表示媒体类型,如&text/html&;第三个参数表示数据的编码格式,&base64&表示采用base64编码,其余值(包括null)表示url编码。
loadUrl : 加载url。
canGoBack : 判断页面能否返回。
goBack : 返回到上一个页面。
网页设置WebSettings
WebSettings用于操作WebView的web设置信息。其对象由WebView的getSettings方法得到。下面是WebSettings的常用设置方法:
setLoadsImagesAutomatically : 设置是否自动加载图片
setDefaultTextEncodingName : 设置默认的文本编码。如utf-8、gbk等等。
setJavaScriptEnabled : 设置是否支持Javascript
setJavaScriptCanOpenWindowsAutomatically : 设置是否允许js自动打开新窗口(window.open())
以上是基本的设置。
setSupportZoom : 设置是否支持缩放。
setBuiltInZoomControls : 设置是否出现缩放工具。
setUseWideViewPort : 当容器超过页面大小时,是否放大页面大小到容器宽度。
setLoadWithOverviewMode : 当页面超过容器大小时,是否缩小页面尺寸到页面宽度。
setLayoutAlgorithm : 设置自适应屏幕的算法,一般是LayoutAlgorithm.SINGLE_COLUMN。如果不做设置,4.2.2及之前版本自适应时可能会出现表格错乱的情况。
以上是网页与容器适配的设置。
setDomStorageEnabled : 设置是否启用本地存储。
setCacheMode : 设置是否使用缓存。LOAD_CACHE_ELSE_NETWORK表示优先使用缓存,LOAD_NO_CACHE表示不使用缓存,LOAD_CACHE_ONLY表示只使用缓存。
setAppCacheEnabled : 设置是否启用app缓存。
setAppCachePath : 设置app缓存文件的路径。
setAllowFileAccess : 设置是否允许访问文件,例如WebView访问sd卡的文件。不过assets与res文件不受此限制,仍然可以通过“file:///android_asset”和“file:///android_res”访问。
setDatabaseEnabled : 设置是否启用数据库。
以上是与存储有关的设置。
网页事件监听
主要有三个事件监听器,分别是WebViewClient、WebChromeClient和DownloadListener。
浏览器加载事件
WebViewClient主要用于处理。相关类名与方法说明如下:
监听器类名 : WebViewClient
设置监听器的方法 : setWebViewClient
监听器需要重写的方法 :&
onPageStarted : 页面开始加载。一般在此弹出进度对话框ProgressFialog
onPageFinished : 页面加载结束。一般在此关闭进度对话框。
onReceivedError : 收到错误信息。
onReceivedSslError : 收到ssl错误。
shouldOverrideUrlLoading : 重写该方法表明,点击网页里面的链接是在当前的webview里跳转,还是跳转到其它浏览器。如果想在当前的webview跳转,则加上下面这句代码:
浏览器的交互事件
WebChromeClient主要用于。相关类名与方法说明如下:
监听器类名 : WebChromeClient
设置监听器的方法 : setWebChromeClient
监听器需要重写的方法 :&
onReceivedTitle : 收到页面标题
onProgressChanged : 页面加载进度发生变化
onJsAlert : 弹出js警告框。
onJsConfirm : 弹出js确认框。
onJsPrompt : 弹出js提示框。
onGeolocationPermissionsShowPrompt : 网页请求定位权限。通常重写该方法弹出一个确认对话框,提示用户是否允许网页获得定位权限。下面代码表示允许定位权限:
文件下载事件
DownloadListener主要用于。相关类名与方法说明如下:
监听器类名 : DownloadListener
设置监听器的方法 : setDownloadListener
监听器需要重写的方法 :&
onDownloadStart : 文件开始下载。可在此设置文件下载的方式,以及文件的保存路径。
浏览器的应用场景
1、点击返回键返回上个页面,可监听返回键的按下事件,具体有两种方式,分别是重写onBackPressed函数,以及重写onKeyDown函数。
重写onBackPressed函数
重写onKeyDown函数
2、显示页面加载进度。可在WebViewClient的onPageStarted方法中弹出进度对话框ProgressFialog,然后在onPageFinished方法中关闭进度对话框。要想动态显示当前页面的加载百分比,可在WebChromeClient的onProgressChanged方法中设置进度对话框的当前进度。
3、显示js的提示对话框。默认情况下,js对话框也能正常显示和操作,只是对话框标题默认为“网址为&***&的网页显示”,这个标题信息不够友好,所以我们需要重写WebChromeClient的三个js方法onJsAlert、onJsConfirm和onJsPrompt,在内部构造一个AlertDialog实例,分别设置标题、信息,以及肯定按钮和否定按钮。同时监听肯定按钮的点击事件,调用JsResult的confirm方法;监听否定按钮的点击事件,调用JsResult的cancel方法。
4、允许js调用本地java代码。先声明一个本地java代码的操作类,然后调用WebView的addJavascriptInterface方法,关联本地java对象与对象名称。代码示例如下:
声明一个本地java代码的操作类:
在WebView中注册该java代码的对象,并演示javascript的调用过程:
Android代码与html的js代码相互调用
Android代码调用js代码
下面是android的代码
下面是js的代码
js代码调用Android代码
下面是android的代码
下面是js的代码
Android与js互调获得返回值
js调用Android方法,可直接获取调用的返回值,难点在于Android调用js方法的返回值。因为WebView加载网页是异步的,所以loadUrl方法调用js无法直接获得返回值。多数情况只能在js代码中回调Android方法,从而间接获取Android调用js的返回值。不过从Android4.4.2开始,我们可通过调用WebView的evaluateJavascript方法来直接得到js返回值,下面是Android的示例代码:
下面是js的代码
下面是android与js相互调用的几个注意点:
1、WebView要调用setWebChromeClient方法设置js的解释客户端,来解决js中alert不弹出的问题,因为js页面的渲染需要WebChromeClient去实现。
2、如果js调用android代码时,logcat报错“Uncaught TypeError: Object [object Object] has no method”,那是因为Android4.2以上版本默认不开放js调用本地方法的权限,得给开放js调用的方法加上“@JavascriptInterface注释”,该注释允许js代码访问android的方法。
3、evaluateJavascript是Android4.4.2之后才引入的新方法,如果是4.4.2之前的Android版本,需要注意做兼容处理。
4、js获取Android方法返回值中的中文是正常,但Android获取js方法返回值的中文却是“\u”打头的字符串,所以Android要先将js返回的字符串做转义处理,即调用上面的UnicodeToString方法,转义后的字符串才是正常的汉字。
5、如果android与js存在嵌套调用(即A调用B,B内部又去调用A),那么在Android4.4.2之后务必要保证两个调用在同一个线程中,不然运行时会报错“java.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebView methods must be called on the same thread.”。具体的解决方法,是调用WebView对象的post方法,在post的Runnable任务中再去调用js方法,示例代码如下:
以下说明文字来自百度百科的PhoneGap词条:
“PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够利用iPhone、Android、Palm、Symbian、WP7、WP8、Bada和Blackberry智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用。
它需要特定平台提供的附加软件,例如iPhone的iPhone SDK,Android的Android SDK等,也可以和DW5.5及以上版本配套开发。使用PhoneGap只比为每个平台分别建立应用程序好一点点,因为虽然基本代码是一样的,但是你仍然需要为每个平台分别编译应用程序。”
对于Android开发来说,PhoneGap其实就是在assets下面新建了www目录,然后入口Activity通过嵌入WebView来加载www下的html页面,接下来就是在各个html之间互相跳转,从而实现Android原生app界面交互的效果。
虽然PhoneGap号称跨平台,但是html5+js也只能完成网站那样的网页操作,却无法直接操作手机设备的功能。因此PhoneGap引入了Cordova,Cordova提供了一组与设备相关的API,通过这组API,app能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。Cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。Cordova是驱动PhoneGap的核心引擎,有人说它们的关系类似于Webkit和Google Chrome的关系。
WeX5是国内基于Phonegap的一个HTML5开发框架,它有自己的开发工具“WeX5 studio”,其实就是个定制版的Eclipse。在这个IDE上,可以通过拖曳控件来画html页面,这个倒是很像ios的开发工具Xcode。另外,WeX5的Cordova插件还集成了国内常用的几个工具包,与PhoneGap相比,WeX5更适合于国内的开发者。
下面是WebView使用的代码例子:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3614次
排名:千里之外

我要回帖

更多关于 app内嵌浏览器 的文章

 

随机推荐