如何利用ps制作gifhoneGap制作地图APP

查看: 3488|回复: 9
cordova 打包的app 如何 打开微信或百度地图
主题帖子积分
注册会员, 积分 179, 距离下一级还需 21 积分
注册会员, 积分 179, 距离下一级还需 21 积分
JS判断手机端是否安装了某个客户端APP应用如果安装了就打开改app
&a href=&weixin://& class=&btn-download&&立即打开&/a&
该代码 经android手机简单测试,使用 打包的app 无法使用。直接在手机浏览器上能直接打开微信。说明手机上已经安装微信&&
想不通为什么。
主题帖子积分
金牌会员, 积分 1476, 距离下一级还需 1524 积分
金牌会员, 积分 1476, 距离下一级还需 1524 积分
没有研究过
主题帖子积分
注册会员, 积分 119, 距离下一级还需 81 积分
注册会员, 积分 119, 距离下一级还需 81 积分
同问,好像是浏览器的兼容性问题,不知道怎么处理。
主题帖子积分
百度地图可以调用jssdk&&就是百度自己提供的js调用方式
微信的话得整插件,比如发送到朋友圈 分享
发到朋友圈在github上面也有插件
主题帖子积分
注册会员, 积分 119, 距离下一级还需 81 积分
注册会员, 积分 119, 距离下一级还需 81 积分
找到解决办法了哈,在config.xml里面配置一下
&access origin=&weixin:*& launch-external=&yes&/&&&//打开微信的
&access origin=&bdapp:*& launch-external=&yes&/& //打开百度地图的
&access origin=&androidamap:*& launch-external=&yes&/& //打开高德地图的
主题帖子积分
注册会员, 积分 80, 距离下一级还需 120 积分
注册会员, 积分 80, 距离下一级还需 120 积分
找到解决办法了哈,在config.xml里面配置一下
&&//打开微信的
非常不错!
主题帖子积分
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
如果打开其他不热门的应用呢?
主题帖子积分
新手上路, 积分 16, 距离下一级还需 34 积分
新手上路, 积分 16, 距离下一级还需 34 积分
找到解决办法了哈,在config.xml里面配置一下
&&//打开微信的
请问 打开高德或者百度&&在html里面怎么设置&&不起作用啊
主题帖子积分
新手上路, 积分 16, 距离下一级还需 34 积分
新手上路, 积分 16, 距离下一级还需 34 积分
找到解决办法了哈,在config.xml里面配置一下
&&//打开微信的
请问 打开高德或者百度&&在html里面怎么写 和微信的格式一样吗&&不起作用啊
主题帖子积分
新手上路, 积分 16, 距离下一级还需 34 积分
新手上路, 积分 16, 距离下一级还需 34 积分
找到解决办法了哈,在config.xml里面配置一下
&&//打开微信的
请问 打开百度或高德在html里怎么设? 跟微信的格式一样吗 为什么不起作用
站长推荐 /1
Ionic(ionicframework)号称未来最有潜力的一款html5移动app开发框架是Angularjs移动端解决方案,Angularjs号称下一代web应用,Ionic移动app开发教程值得拥有
Powered by查看: 3286|回复: 6
phonegap利用百度地图实现定位
主题帖子积分
我们都知道无论用原生开发的程序,还是用phoengap调用原生接口开发的程序,实现定位的时候总是不理想,下面给大家分享一个利用百度地图定位的方法
利用百度地图定位
1.&&打开这个网址
2.找到&&服务示例-定位服务 -浏览器订单&&如下图
2.jpg (36.47 KB, 下载次数: 8)
21:47 上传
也可以获取代码一下他的示例代码:
最后核心代码如下
&script type=&text/javascript& src=&http://api./api?v=2.0&ak=您的密钥&&&/script&
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r){
& & if(this.getStatus() == BMAP_STATUS_SUCCESS){
& && &
& && & // alert('您的位置:'+r.point.lng+','+r.point.lat);
& &
& & var longitude=r.point.//经度
& & var latitude=r.point. //纬度
& && &&&
& && &&&
& && &&&
& & }
& & else {//失败的回调函数& && &&&
& & //错误回调& &
& && &&&
& & //alert('failed'+this.getStatus());
& & }& && &&&
},{enableHighAccuracy: true});复制代码
主题帖子积分
新手上路, 积分 24, 距离下一级还需 26 积分
新手上路, 积分 24, 距离下一级还需 26 积分
通过这种方式获取的经纬度信息,偏差太大了
主题帖子积分
通过这种方式获取的经纬度信息,偏差太大了
还可以以吧,原生也有偏差,感觉自己的设备好的话可以用原生
主题帖子积分
新手上路, 积分 19, 距离下一级还需 31 积分
新手上路, 积分 19, 距离下一级还需 31 积分
主题帖子积分
新手上路, 积分 24, 距离下一级还需 26 积分
新手上路, 积分 24, 距离下一级还需 26 积分
嗯,获取经纬度后需要再转换一下才可以
主题帖子积分
新手上路, 积分 24, 距离下一级还需 26 积分
新手上路, 积分 24, 距离下一级还需 26 积分
本帖最后由 wyz191 于
08:36 编辑
&script type=&text/javascript&&
document.addEventListener('deviceready',onDeviceReady,false);
function onDeviceReady(){
& & getLocation();
}
function getLocation()
{
& & try{
& && &&&if(navigator.geolocation){
& && && && &navigator.geolocation.getCurrentPosition(showMap, handleError, {enableHighAccuracy:true, maximumAge: 3000, timeout: 5000});
& && &&&}else{
& && && && &alert(&您的浏览器不支持使用HTML 5来获取地理位置服务&);
& && &&&}
& & }catch(err){
& && &&&alert(err);
& & }
}
function showMap(value){//地图初始化
& & try{
& && &&&var longitude = value.coords.
& && &&&var latitude = value.coords.
& && &&&
& && &&&alert('GPS : '+longitude+& -- &+latitude);
& && &&&var map = new BMap.Map(&map&);
& && &&&var point = new BMap.Point(longitude, latitude);& & // 创建点坐标
& && &&&map.centerAndZoom(point, 15);
& && &&&var labelgps = new BMap.Label(&我是GPS标注哦&,{offset:new BMap.Size(20,-10)});
& && &&&var marker = new BMap.Marker(new BMap.Point(longitude, latitude));&&// 创建标注
& && &&&marker.setLabel(labelgps); //添加GPS标注
& && &&&map.addOverlay(marker);
& && &&&map.addControl(new BMap.NavigationControl());
& && &&&//坐标转换完之后的回调函数
& && &&&translateCallback = function (point){
& && && && &var marker = new BMap.Marker(point);
& && && && &map.addOverlay(marker);
& && && && &var label = new BMap.Label(&我是百度标注哦&,{offset:new BMap.Size(20,-10)});
& && && && &marker.setLabel(label); //添加百度label
& && && && &map.setCenter(point);
& && && && &alert(point.lng + &,& + point.lat);
& && && && &var myGeo = new BMap.Geocoder();
& && && && &// 根据坐标得到地址描述
& && && && &myGeo.getLocation(point, function(result){
& && && && && && && && && && &if (result){
& && && && && && && && && && &var province = result.addressComponents.
& && && && && && && && && && &var city = result.addressComponents.
& && && && && && && && && && &var district = result.addressComponents.
& && && && && && && && && && &var street = result.addressComponents.
& && && && && && && && && && &var streetNumber = result.addressComponents.streetN
& && && && && && && && && && &alert(province + ' - ' +city + ' - ' +district+ ' - ' +street + ' - ' + streetNumber);
& && && && && && && && && && &}
& && && && && && && && && && &});
& && &&&}
& && &&&setTimeout(function(){
& && && && && && & BMap.Convertor.translate(point,0,translateCallback);& &&&//真实经纬度转成百度坐标
& && && && && && & }, 2000);
& & }catch(err){
& && &&&alert(err);
& & }
}
function handleError(value)
{
& & alert('handleError:'+value);
& & switch(value.code){
& && &&&case 1:
& && &&&console.log(&位置服务被拒绝&);
& && &&&
& && &&&case 2:
& && &&&console.log(&暂时获取不到位置信息&);
& && &&&
& && &&&case 3:
& && &&&console.log(&获取信息超时&);
& && &&&
& && &&&case 4:
& && &&&alert(&未知错误&);
& && &&&console.log(&未知错误&);
& && &&&
& & }
}
&/script&
复制代码
主题帖子积分
站长推荐 /1
Ionic(ionicframework)号称未来最有潜力的一款html5移动app开发框架是Angularjs移动端解决方案,Angularjs号称下一代web应用,Ionic移动app开发教程值得拥有
Powered by温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
专注互联网技术
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
& & & & & &
alert(JSON.stringify(pos))& & & & },function(err){& & & & & & & &alert(JSON.stringify(err))& & & & & }, {
enableHighAccuracy: false,
timeout: 60*1000,
maximumAge: });上述代码在ios上一切正常,在安卓4.3及以后的机器也可以正常访问,但是在安卓4.1上就会出现timeout,如果我们把&enableHighAccuracy 设置为 true,那么在室外,空气良好的地方,安卓4.1将能够通过卫星进行定位,但是速度巨慢,其实我们很多时候并不是想要非常精准的定位信息,完全可以通过基站或者wifi来定位,虽然html5提供给了我们这样的接口,但是安卓4.1上支持的不是很好。另外一个巨坑也直接影响了我对这个问题的判断,如果我重启了安卓4.1的机器,那么上述代码将能够正常跑大约几小时,甚至半天,可是到了第二天又会出现同样的问题,无尽的timeout。总不能让客户每次使用定位功能都重启一次机器吧,涉及这个问题的机器有包括我的华为,三星note2,oppo等目前主流的安卓4.1系统的机子,在另外几台例如glasky3、红米等安卓4.3的机器上没有出现。然后我直接将上述代码在浏览器中运行,发现安卓4.1也是无法跑起来,天真的我以为是安卓4.1对html5的接口支持问题,于是利用cordova加载geolocation插件,想利用cordova的native方法解决这个问题,但是问题依旧,其中意外的发现我的华为和note2能够跑起来了,其实只不过碰巧刚重启过而已。这个是我在stackoverflow上发的问题,碰到这类问题的中外友人巨多。如何填补这个坑呢?我搜遍了整个网络,发现国外可以使用google地图来解决,而国内只有使用百度的定位SDK来解决了,不过最新的安卓百度定位SDK4.1同样巨坑无比,直接下载官方的demo跑在真机上各种无法定位,一直报errorcode 602,于是逛了下百度SDK的论坛,发现很多人说4.1版本的SDK问题很多,不如用回4.0版本,于是我报着试试看的心情用回了SDK4.0版本,最终在安卓4.1的机器上定位成功,不存在需要重启的情况,然后我根据&andybuit 作者的代码,小幅改动,封装成支持新版 cordova 3.4.1 的插件放在github上,供碰到同样问题的朋友使用,希望能够帮助到他们。再次感谢&andybuit&提供的百度定位代码,谢谢!新版本插件地址:下面步入正题,通过一个简单的安卓&hello world 程序来运用百度定位插件1、建立 hello world 项目:cordova create hello com.example.hello HelloWorld2、建立安卓支持,目前本插件只支持安卓,似乎也只要支持安卓,ios对html5的定位支持的非常好,无须百度定位SDKcordova platform add android3、安装 baidu 定位的插件:可以通过git来下载远程的,需要安装git命令 cordova plugin add /DoubleSpout/phonegap_baidu_sdk_location.git也可以将插件下载到&hello\plugins 目录下,文件夹重命名为&com.spout.phonegap.plugins.baidulocation,然后执行命令:cordova plugin install&com.spout.phonegap.plugins.baidulocation4、插件安装完成之后,执行一次 build 命令,将插件的配置文件写入安卓平台目录:cordova build android5、打开eclipse,对hello项目进行配置:5.1、新建工程&5.2、从已有代码库添加&5.3、找到安卓的项目路径&5.4、编辑项目属性&5.5、添加百度sdk的jar文件&5.6、选择locSDK&5.7、编辑source 附件&5.8、同样选择百度sdk的jar&5.9、保存路径&5.10、选择order and export 将前面全部打勾&5.11、将文本编辑编码改为utf-8&5.12、打开&hello\platforms\android\src\com\spout\phonegap\plugins\baidulocation\BaiduLocation.java 文件,修改自己的apkkey(其实不修改也能使用),大约在64行:key的生成和获取详见百度sdk的key获取页面,地址:6、找到&hello\www\js\index.js 文件,修改并增加如下几行,通过百度SDK获取经纬度:
onDeviceReady: function() {
app.receivedEvent('deviceready');
//通过百度sdk来获取经纬度,并且alert出经纬度信息
var noop = function(){}
window.locationService.getCurrentPosition(function(pos){
alert(JSON.stringify(pos))
window.locationService.stop(noop,noop)
},function(e){
alert(JSON.stringify(e))
window.locationService.stop(noop,noop)
},7、完成上述工作后,执行命令打包生产APK,注意百度定位的SDK在模拟器上是无法运行的,会曝出167错误码cordova build android8、将&hello\platforms\android\ant-build\HelloWorld-debug-unaligned.apk 文件拷贝到之前有问题的安卓4.1的机器上,显示如下图,通过wifi成功快速获取到经纬度信息,再也不用重启机子了:&至此百度SDK说明完毕,希望能够帮助到利用phonegap开发安卓应用,又碰到我这样问题的朋友~
阅读(18887)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'phonegap利用百度地图sdk定位',
blogAbstract:'近期的一个phonegap项目把我做的焦头烂额,最让人蛋疼的就是安卓4.1.x对html5的定位获取经纬度有个无比巨大的坑,一般我们利用如下代码进行html5的定位navigator.geolocation.getCurrentPosition(function(pos){& & & & & &
alert(JSON.stringify(pos))& & & & },function(err){& & & & & & & &alert(JSON.stringify(err))',
blogTag:'phonegap,安卓,android,定位,无法定位',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:9,
publishTime:1,
permalink:'blog/static/',
commentCount:49,
mainCommentCount:29,
recommendCount:3,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'专注互联网技术',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}2. 新版本PhoneGap的配置方法
本文所属图书&>&
PhoneGap是一款优秀的移动跨平台开发框架,开发者通过它能够快速地将Web应用打包成在各个平台上运行的本地APP。本书分4篇共19章,第一篇是入门篇,包括了PhoneGap的小伙伴们、在安卓开发环境下的配置、对HTML 5&&
在3.0.0之后的PhoneGap版本中使用了Node.js进行管理,在配置和使用时比之前的版本要方便很多,但是由于官方文档在这方面的介绍不是很全面,导致了对不懂Node.js的开发者来说会比较困难。
首先要去Node.js的官方网站(http://nodejs.org/)下载最新版本的Node.js并进行安装。安装完成后以管理员身份运行Node.js command prompt.exe。
许多人在这一步容易错误地运行了Node.js.exe进行操作,因为它的图标比较容易成为用户的目标,但这却是错误的。
运行Node.js command prompt.exe之后,在命令行中输入命令:npm install &g phonegap,Node.js将会自动在网络上寻找PhoneGap相关进行安装。稍等几分钟即可下载完毕,可以进行下一步的操作。在命令行下执行命令phonegap create myphonegap,创建一个名为myphonegap的项目,完成后出现如图2-26所示的提示。此时在用户目录下已经出现了一个名为myphonegap的文件夹,如图2-27所示。
在命令行中继续输入命令:cd myphonegap,进入项目文件,再执行命令:phonegap build android,生成完整的安卓项目文件(如图2-28所示)。此时就可以将整个文件夹导入到Eclipse中进行使用了。
由于目前PhoneGap还不太完善,有可能会出现phonegap命令无法正确执行的情况,这时可以尝试找到Node.js中PhoneGap的安装路径,并将它添加到path环境变量中。
在实际开发中,如果没有插件的辅助,使用Eclipse进行代码的编写也许会有些不适应,也可以抛开Eclipse进行工作。输入命令phonegap install android,将项目打包生成apk文件并安装到上,再输入命令phonegap run android,使安装好的应用在上运行。这样就可以使用Notepad或者EditPlus之类的编辑器进行编码,然后直接使用命令行运行了,比单纯依靠Eclipse要方便不少。
还可以直接在网站/,利用PhoneGap提供的在线编译工具直接生成各个平台都能使用的安装文件,这样就彻底抛开了SDK,真正做到了跨平台开发,实在是非常方便。
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。
·&C++11中的使用

我要回帖

更多关于 如何利用wps制作ppt 的文章

 

随机推荐