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

QQ登录

只需一步,快速开始

查看: 7480|回复: 30

[结贴] 微信分享时没法获取绝对地址

[复制链接]

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
发表于 2017-3-25 22:27:55 | 显示全部楼层 |阅读模式
微信分享时没法获取绝对地址,问题描述如下:
在微信分享时,标题,图片等参数可以分享,但所在地址路径一直没法获取,怎么做?
比如:我想要分享的页面的真实地址是:某一商品详情地址,带参数的:http://localhost:8080/x5/UI2/v_/kuaimai/index.w?device=m#!detail//({"goodsID":"C770762D9ED000013BA51AC4D620AC60","shopID":"1","chuoxiao":""}#!detailsContent),但经过分享后,浏览器中执行的地址变成这个了:http://localhost:8080/x5/UI2/v_/kuaimai/index.w?device=m#!main,也就是说又回到首页了,一直没法直接到商品详情页面中去。
另:我把这个带参数的地址(http://localhost:8080/x5/UI2/v_/kuaimai/index.w?device=m#!detail//({"goodsID":"C770762D9ED000013BA51AC4D620AC60","shopID":"1","chuoxiao":""}#!detailsContent))直接拷贝到浏览器中运行后也会这样回到首页中去,请教一下,这是什么机制,如何解决,如何能让我直接获取商品详情的真实运行地址.
请指导下,谢谢!

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
发表于 2017-3-30 09:58:07 | 显示全部楼层
cnjszd 发表于 2017-3-29 17:42
啊,高人,给我你的代码,那个w和js文件给我看一下吧,我不大搞得清,谢谢你 ...

代码不能全部搞到,我的是index.w  ----->main.w ---------->infolist.w -------->infodetail.w
全部都是windowcontainer来做的,开了全部的路由,也是js-api。
我最后的详细页路径是这样的:
  1. http://localhost:8080/x5/UI2/v_/mfxxl/index.w?device=m#!main//(#!windowContainer4//({"src":"/x5/UI2/v_932527ecfce242c8ab839c00fdf30544l_zh_CNs_d_m/mfxxl/infodetail.w","params":{"data":{"info_id":376}}})/!/infodetailcontent)
复制代码

和你的url对比你应该用shell吧?
我建议在浏览器先调了没有问题再去微信,浏览器过不了说明应该还是有些问题的!

这个在detail.w页面:
  1.         Model.prototype.modelParamsReceive = function(event){
  2.                 debugger;
  3.                 var self = this;
  4.                 if(event !== undefined){if(event.params !== undefined){if(event.params.data !== undefined){if(event.params.data.info_id !== undefined){
  5.                 var id = event.params.data.info_id;
  6.                 id =  id.toString();
  7.                 var data = this.comp('infoData');
  8.                 data.filters.setVar("info_id", id);
  9.                 data.refreshData();
  10.                 this.content = data.getValue('info_content');
  11.             this.imgUrl = require.toUrl(data.getValue('img_url'));
  12.                 }}}}

  13.             base.ready(function() {
  14.                     self.ready.set(true);
  15.                     debugger;
  16.                     var stitle = '免费信息栏*同城资讯';
  17. //                    var slink = location.href;
  18.                     var slink = Utils.getShareUrl();
  19.                     var domain = window.location.host;
  20.                     var simgUrl = 'http://'+domain + require.toUrl(self.imgUrl);
  21.                     var sdesc = self.content;
  22.                    
  23.                         share.onMenuShareTimeline({
  24.                                 title : sdesc ,
  25.                                 link : slink,
  26.                                 imgUrl : simgUrl,
  27.                                 trigger : function(res) {},
  28.                                 success : function(res) {
  29.                                         justep.Util.hint('已分享');
  30.                                 },
  31. ......................
复制代码


之前就是这样在浏览器是对的。//                    var slink = location.href;
在微信里换成了这个微信就对了。                    var slink = Utils.getShareUrl();
什么都没有改,所以你的应该在之前的代码可能就有些小问题,我也是个菜鸟,你再研究下!
回复 支持 1 反对 0

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-25 23:33:17 | 显示全部楼层
同样的这段地址:http://localhost:8080/x5/UI2/v_/kuaimai/index.w?device=m#!detail//({"goodsID":"C770762D9ED000013BA51AC4D620AC60","shopID":"1","chuoxiao":""}#!detailsContent)
我把它拷贝到浏览器中回车后运行,第一次运行后回到首页(错误),第二次再运行后就到详情页面去了(正确),这是什么情况?
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-25 23:34:44 | 显示全部楼层
cnjszd 发表于 2017-3-25 23:33
同样的这段地址:http://localhost:8080/x5/UI2/v_/kuaimai/index.w?device=m#!detail//({"goodsID":"C7707 ...

第三次运行就错,第四次运行就对,奇数次运行是对,偶数次运行是错的
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-25 23:45:07 | 显示全部楼层
这问题挺致命的,如不能解决,根本就没法实现分享功能,还有,我用link : window.location.href,来获取URL,后面的参数也获取不到,不知如何解决?
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-26 09:33:43 | 显示全部楼层
cnjszd 发表于 2017-3-25 23:45
这问题挺致命的,如不能解决,根本就没法实现分享功能,还有,我用link : window.location.href,来获取URL ...

问题补充:我用的是“JS-API”这种方式实现在微信公众号里的分享功能
回复 支持 反对

使用道具 举报

发表于 2017-3-27 11:22:12 | 显示全部楼层
cnjszd 发表于 2017-3-26 09:33
问题补充:我用的是“JS-API”这种方式实现在微信公众号里的分享功能

http://docs.wex5.com/wex5-app-question-list-2065
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-27 16:26:05 | 显示全部楼层
liangyongfei 发表于 2017-3-27 11:22
http://docs.wex5.com/wex5-app-question-list-2065

我看了系统自带的demo/taobao下面的detail,那个分享事件代码如下:
//分享按钮
        Model.prototype.shareBtnClick = function(event){
                /*
                1、获取商品ID
                2、打开分享页面
        3、参数说明
            thumb:缩略图,可以显示商品图片,注意不能大于32kb,链接从http开始
                        webpageUrl: 分享链接,使用location.href显示当前页面,链接从http开始
                        scene:分享到微信朋友圈、微信朋友、微信群
                                weixin.Scene.TIMELINE 是分享到微信朋友圈
                                 weixin.Scene.SESSION 是分享给微信朋友、微信群
                */
                if (!navigator.weixin) {
                        return;
                }
                var weixin = navigator.weixin;
                var Utils = require("$UI/system/components/justep/common/utils");               
                weixin.share({
                        message : {
                                title : this.comp("goodsData").val("fTitle"),
                                description : "",
                                mediaTagName : "",
                                thumb : location.origin + require.toUrl("./detail/img/icon.png"),
                                media : {
                                        type : weixin.Type.WEBPAGE,
                                        webpageUrl : Utils.getShareUrl()
                                }
                        },
                        scene : weixin.Scene.TIMELINE
                }, function() {
                        // alert("Success");
                }, function(reason) {
                        // alert("Failed: " + reason);
                });
                       
        };
        我把这个淘宝例子放到手机上运行,点这个分享动作,根本就没有任何反应,这到底是怎么回事?请指点下
回复 支持 反对

使用道具 举报

发表于 2017-3-27 16:28:47 | 显示全部楼层
cnjszd 发表于 2017-3-27 16:26
我看了系统自带的demo/taobao下面的detail,那个分享事件代码如下:
//分享按钮
        Model.prototype.shareBt ...

你自己调试一下吧!!他的代码做了判断是微信中运行时分享的!!
  if (!navigator.weixin) {
                        return;
                }
你是APP 中分享页面!!反正你试试把,分享的URL使用Utils.getShareUrl()  处理一下,应该就可以了!
你也可以看下这个方法的源码
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-27 16:31:53 | 显示全部楼层
我不是APP运行,我是在公众号里运行的,这个例子的运行环境是这样的:我用可以实现支付功能的公众号,进去后,增加自定义菜单,然后加了一个链接指向到这个DEMO/TAOBAO例子的INDEX.W文件后,用手机进入该公众号,通过菜单功能进入,运行这个淘宝例子,进某一条商品详情后,点这个分享动作,根本没有反应,如何解决?谢谢
回复 支持 反对

使用道具 举报

150

主题

569

帖子

1438

积分

金牌会员

Rank: 6Rank: 6

积分
1438
QQ
 楼主| 发表于 2017-3-27 16:43:58 | 显示全部楼层
cnjszd 发表于 2017-3-27 16:31
我不是APP运行,我是在公众号里运行的,这个例子的运行环境是这样的:我用可以实现支付功能的公众号,进去 ...

我在你们起步软件的公众号里,进入那个仿淘宝后,再进入某一个商品详情页面后,点分享动作也是没反应
微信图片_20170327164204.jpg
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 21:57 , Processed in 0.087167 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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