起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9021|回复: 21

[结贴] app报错,“Cannot read property 'uuid' of undefined”

[复制链接]

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
发表于 2017-3-1 11:13:24 | 显示全部楼层 |阅读模式
参照外卖案例的代码:
  1.                 if (justep.Browser.isX5App) {
  2.                         this._deviceType = "app";

  3.                         CommonUtils.attachDoubleClickExitApp(function() {
  4.                                 if (self.comp('contents').getActiveIndex() === 0) {
  5.                                         return true;
  6.                                 }
  7.                                 return false;
  8.                         });
  9.                         document.addEventListener("deviceready", function() {
  10.                                 self._userID = window.device.uuid;
  11.                                 self._userDefaultName = "新用户(来自X5APP的用户)";
  12.                         }, false);
复制代码

打包成安卓app时,进入软件就报“Cannot read property 'uuid' of undefined”
网页或者微信端都正常,安卓为7.0或7.1都一样的报这个!

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-3-1 11:27:40 | 显示全部楼层
在appload里面也是不行,看不到报错信息!
回复 支持 反对

使用道具 举报

发表于 2017-3-1 11:53:10 | 显示全部楼层
http://docs.wex5.com/cordova-plugin-device/
确认这个cordova插件真的打包在APP中了吗??
一般报错undefined都是没有打包插件导致的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-3-1 13:10:36 | 显示全部楼层
liangyongfei 发表于 2017-3-1 11:53
http://docs.wex5.com/cordova-plugin-device/
确认这个cordova插件真的打包在APP中了吗??
一般报错un ...

现在打包了cordova后,进入提示“请填写有效的整数”。都找不到头绪!
然后我使用了jsapi的geo.openLocation,提示“Cannot read property 'transform' of undefined”,那个weixin v3我是打包过的!
回复 支持 反对

使用道具 举报

发表于 2017-3-1 14:00:16 | 显示全部楼层
ufo1982ufo 发表于 2017-3-1 13:10
现在打包了cordova后,进入提示“请填写有效的整数”。都找不到头绪!
然后我使用了jsapi的geo.openLocat ...

你是在哪儿调用的??JSAPI 是在微信中运行才能调用
是使用的这个案例测试的吗??
/UI2/system/api/native/demo/test.w

app中我们默认的地图使用的是百度地图!
weixin v3并没有提供微信地图的插件!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-3-1 15:29:04 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2017-3-1 15:30 编辑
liangyongfei 发表于 2017-3-1 14:00
你是在哪儿调用的??JSAPI 是在微信中运行才能调用
是使用的这个案例测试的吗??
/UI2/system/api/nati ...

不是得,我参考了文档说明中的js-api使用说明:
http://docs.wex5.com/how-to-use-js-api/#2
  1. 目前这个“壳”可以是微信、cordova,因此可以把js-api使用在微信公众号、wex5 app开发场景下。且一种应用开发好之后,在另一种“壳”下,不需要修改开发好的UI代码,只需修改配置,就能使用;反之亦然。达到一次开发,多“壳”使用的目的。
复制代码

我就是想用这个geo,在微信也可以,在app下也可以呀!
代码参考那个文档里的
  1.         Model.prototype.openApiLocation = function(event){
  2.                 var self = this;
  3.                 geo.openLocation({
  4.                     latitude : window.wLatitude,
  5.                     longitude : window.wLongitude,                 //经纬度
  6.                     name : self.mTitle,                    //显示名称
  7.                     address : self.mAddress, //地名
  8.                 });
  9.         };
复制代码

应该不会错!微信里调用是正常的,说明这个壳应该没有问题!就是app下报错了!

回复 支持 反对

使用道具 举报

发表于 2017-3-1 16:20:49 | 显示全部楼层
ufo1982ufo 发表于 2017-3-1 15:29
不是得,我参考了文档说明中的js-api使用说明:
http://docs.wex5.com/how-to-use-js-api/#2

那你看下源码吧!他是怎么封装的!最终使用的是哪个插件!
代码中如果引入了这个插件!
打包的时候,你选中资源,选中自动选择插件,并且重新编译资源!那么插件肯定会打包进去的!
插件如果没打包进去!一般就会报错
undefined

我看了下源码,应在这里
/UI2/system/api/native/geo.js
代码是:        navigator.baiduLocation.transform(function(data){

用到的插件是
        require("cordova!cordova-plugin-geolocation");
        require("cordova!com.justep.cordova.plugin.bmap");

这两个插件确认打包进去了吗?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-3-1 20:19:16 | 显示全部楼层
liangyongfei 发表于 2017-3-1 16:20
那你看下源码吧!他是怎么封装的!最终使用的是哪个插件!
代码中如果引入了这个插件!
打包的时候,你选 ...

嗯,我现在打进了这2个插件,提示:navigator.baiduLocation.transform is not a function
  1.                                 navigator.baiduLocation.transform(function(data){
  2.                                         var bdLat = data.latitude;
  3.                                         var bdLon = data.longitude;
  4.                                         bmap.marker({
  5.                                                 location : "" + bdLat + "," + bdLon,
  6.                                                 title : name,
  7.                                                 content : address,
  8.                                                 src : base.config.appName                                                       
  9.                                         });
  10.                                 }, function(data){
  11.                                         Utils.errorCallback(this, param, {
  12.                                                 'errMsg' : 'transform : fail',
  13.                                                 'resultStr' : JSON.stringify(data)
  14.                                         });
  15.                                 }, longitude, latitude, "wgs84", "bd09");
复制代码

我在geo.js里找到这些代码,文件我都没有改过的,是怎么引起的?
回复 支持 反对

使用道具 举报

发表于 2017-3-2 09:47:16 | 显示全部楼层
ufo1982ufo 发表于 2017-3-1 20:19
嗯,我现在打进了这2个插件,提示:navigator.baiduLocation.transform is not a function

我在geo.js里 ...

如果提示信息是:navigator.baiduLocation.transform is not a function
说明这个插件根本就没有打包进去
你可以自己看一下这个插件是否打包进去了:
http://docs.wex5.com/wex5-app-question-list-2039/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-3-2 10:52:44 | 显示全部楼层
liangyongfei 发表于 2017-3-2 09:47
如果提示信息是:navigator.baiduLocation.transform is not a function
说明这个插件根本就没有打包进去 ...

微信截图_20170302102804.png
根据你给的链接,我到\assets\www\plugins看了后发现只有“baidulocation”,而没有bmap,是不是这里引起的?
提示的是not a function,而不是undefined,又会不会是这里的问题?
在baidulocation里的js文件都是tranformlng和tranformlat,而没有transform,这个transform只在geo.js里出现过,会不会本身的geo.js问题,我也没有改过任何的代码!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-2 07:56 , Processed in 0.077733 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表