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

QQ登录

只需一步,快速开始

楼主: qweasdzxc

[处理中5] customurlscheme插件传参问题

[复制链接]

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2017-9-25 11:15:38 | 显示全部楼层
本帖最后由 qweasdzxc 于 2017-9-25 11:47 编辑

这是我的代码,把它的监听放同一个事件modelModelConstructDone,中间的代码都执行了,但是handleOpenURL这个事件都没执行啊
  1. define(function(require) {
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         require("cordova!cordova-plugin-customurlscheme");
  5.         var url;
  6.         var Model = function() {
  7.                 this.callParent();
  8.         
  9.         this.eventName = new Date().getTime() + "";
  10.         
  11.          
  12.         var info=window.location.href;
  13.         var b=info.split("$model/UI2");
  14.                 url = "x5/UI2/v_"+b[b.length-1];
  15.                
  16.         };        

  17.         Model.prototype.modelModelConstructDone = function(event){
  18.             $(window).on('handleOpenURL.'+this.eventName,this.handleOpenURL);
  19.             
  20.             if (justep.Browser.isIOS) {
  21.                         var ifr = document.createElement('iframe');
  22.                         ifr.src = 'x5xxpt://';
  23.                         ifr.style.display = 'none';
  24.                         document.body.appendChild(ifr);
  25.                         window.setTimeout(function() {
  26.                                 document.body.removeChild(ifr);
  27.                         }, 2000);
  28.                 }
  29.                 if (justep.Browser.isAndroid) {
  30.                         var ifr = document.createElement('iframe');
  31.                         ifr.src = 'x5xxpt://';
  32.                         ifr.style.display = 'none';
  33.                         document.body.appendChild(ifr);
  34.                         window.setTimeout(function() {
  35.                                 document.body.removeChild(ifr);
  36.                         }, 2000);
  37.                 }
  38.                
  39.                  $(window).off("handleOpenURL." + this.eventName);
  40.         };
  41.         
  42.         // 在此接收URL参数
  43.         Model.prototype.handleOpenURL = function(event, url) {
  44.             alert(url);
  45.                 justep.Util.hint("接收到URL参数:  " + url);
  46.                 // justep.Util.hint("开发者现在可以根据接收到的URL参数进行不同的处理,在此并不在做展示");
  47.         };
  48.         return Model;
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-9-25 13:37:33 | 显示全部楼层
你在同一个是按中先on绑定再off取消绑定,那跟没绑定一样
on.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2017-9-25 14:10:39 | 显示全部楼层
本帖最后由 qweasdzxc 于 2017-9-25 14:19 编辑
jishuang 发表于 2017-9-25 13:37
你在同一个是按中先on绑定再off取消绑定,那跟没绑定一样
  1. define(function(require) {
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         require("cordova!cordova-plugin-customurlscheme");
  5.         var url;
  6.         var Model = function() {
  7.                 this.callParent();
  8.         
  9.         this.eventName = new Date().getTime() + "";
  10.          $(window).on('handleOpenURL.'+this.eventName,this.handleOpenURL);
  11.          
  12.         var info=window.location.href;
  13.         var b=info.split("$model/UI2");
  14.                 url = "x5/UI2/v_"+b[b.length-1];
  15.                
  16.         };        
  17.         
  18.         Model.prototype.modelModelConstructDone = function(event){            
  19.             if (justep.Browser.isIOS) {
  20.                         var ifr = document.createElement('iframe');
  21.                         ifr.src = 'x5xxpt://';
  22.                         ifr.style.display = 'none';
  23.                         document.body.appendChild(ifr);
  24.                         window.setTimeout(function() {
  25.                                 document.body.removeChild(ifr);
  26.                         }, 2000);
  27.                 }
  28.                 if (justep.Browser.isAndroid) {
  29.                         var ifr = document.createElement('iframe');
  30.                         ifr.src = 'x5xxpt://';
  31.                         ifr.style.display = 'none';
  32.                         document.body.appendChild(ifr);
  33.                         window.setTimeout(function() {
  34.                                 document.body.removeChild(ifr);
  35.                         }, 2000);
  36.                 }
  37.                  $(window).off("handleOpenURL." + this.eventName);
  38.         };

  39.         // 在此接收URL参数
  40.         Model.prototype.handleOpenURL = function(event, url) {
  41.             alert(url);
  42.                 justep.Util.hint("接收到URL参数:  " + url);
  43.                 // justep.Util.hint("开发者现在可以根据接收到的URL参数进行不同的处理,在此并不在做展示");
  44.         };
  45.         return Model;
  46. });
复制代码
这样也不执行啊,具体分别放到什么事件中?

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-9-25 14:20:34 | 显示全部楼层
$(window).on('handleOpenURL.'+this.eventName,this.handleOpenURL);放到onlModelConstructDone 中

$(window).off("handleOpenURL." + this.eventName);先不要写
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2017-9-25 14:26:28 | 显示全部楼层
jishuang 发表于 2017-9-25 14:20
$(window).on('handleOpenURL.'+this.eventName,this.handleOpenURL);放到onlModelConstructDone 中

$(w ...

Model.prototype.handleOpenURL = function(event, url) {
            alert(url);
                justep.Util.hint("接收到URL参数:  " + url);
                // justep.Util.hint("开发者现在可以根据接收到的URL参数进行不同的处理,在此并不在做展示");
        };

这个方法还是没运行
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-9-25 15:39:19 | 显示全部楼层
app打包时输入的参数值是什么
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2017-9-25 15:43:01 | 显示全部楼层
jishuang 发表于 2017-9-25 15:39
app打包时输入的参数值是什么

x5xxpt
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-9-25 16:59:24 | 显示全部楼层
你好楼主,您反馈的这个现象通过验证是产品缺陷,我们已提交到产品组(内部编号:2017092500004),感谢楼主的支持与配合。
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2017-9-29 15:35:55 | 显示全部楼层
当在Cordova环境中运行 meteor应用程序时,handleOpenURL在冷启动后不会被调用,因为cordova在启动期间重置了JavaScript环境,而我们的定时器等待handleOpenURL消失。 为了获得应用程序在cordova应用程序中启动的intent,您需要通过getLastIntent从meteor端请求它。

需要自己调用一下getLastIntent这个函数把参数获取回来,可以在首页加载起来以后,可以用一个延时函数加载看看

远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3383

积分

论坛元老

Rank: 8Rank: 8

积分
3383
QQ
 楼主| 发表于 2017-9-29 15:54:41 | 显示全部楼层
jishuang 发表于 2017-9-29 15:35
当在Cordova环境中运行 meteor应用程序时,handleOpenURL在冷启动后不会被调用,因为cordova在启动期间重置 ...

首页加载起来以后的延时函数具体怎么写呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 09:52 , Processed in 0.065189 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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