Comments (37)
请问可否进入微信之后跳转小程序界面?
暂时没有这种场景,不过可以支持哈,我看一下本周实现一下
from callapp-lib.
唤醒微信打开指定页面,比如选择一个聊天和唤醒QQ打开发送给好友列表,是要在open方法里传path吗, 应该传什么值,有对应的文档吗@suanmei
from callapp-lib.
唤醒微信打开指定页面,比如选择一个聊天和唤醒QQ打开发送给好友列表,是要在open方法里传path吗, 应该传什么值,有对应的文档吗@suanmei
唤醒微信打开指定页面,比如选择一个聊天和唤醒QQ打开发送给好友列表,是要在open方法里传path吗, 应该传什么值,有对应的文档吗@suanmei
不可能让你调这些功能性的东西的,调用聊天窗口之类的都是需要经过微信校验的;不然随便一个钓鱼网站放一个 scheme 引导你点开触发支付就血崩了
from callapp-lib.
from callapp-lib.
嗯,确实不行。因为都是需要通过sdk去做的
from callapp-lib.
好,多谢啦~~
from callapp-lib.
看大佬源码中的实现和 Issues 中的实现不大一样,Issues 中的是早些版本的嘛?
在源码中换成了 setTimeout,我理解的安卓中 setInterval 被卡住是卡在当前 interval 的下一次 interval 循环,而 setTimeout 只有一次事件循环,会不会无法在安卓下卡住呢。
望指点谢谢大佬
const checkOpen = setInterval(() => {
count++;
waitTime = new Date() - initialTime;
if (waitTime > 2500) {
clearInterval(checkOpen);
cb();
}
if (counter < 100) return;
const hide = document.hidden || document.webkitHidden;
if (!hide) {
cb(); // 唤端失败的回调函数
}
}, 20);
export function checkOpen(cb, timeout) {
const visibilityChangeProperty = getVisibilityChangeProperty();
const timer = setTimeout(() => {
const hidden = isPageHidden();
if (!hidden) {
cb();
}
}, timeout);
if (visibilityChangeProperty) {
document.addEventListener(visibilityChangeProperty, () => {
clearTimeout(timer);
});
return;
}
window.addEventListener('pagehide', () => {
clearTimeout(timer);
});
}
from callapp-lib.
@Sherryer 其实两个版本都是可以的,上面是我很早的时候的写法,后来发现并不需要放在 setInterval 中,setTimeout 同样可以,也省去了 setInterval 的轮询。
setTimeout 并不会被卡住。
setInterval 实现中的
if (waitTime > 2500) {
clearInterval(checkOpen);
cb();
}
就是为了应对卡住或者这 2000ms (当然 2000ms是随便设置的) 中有什么其他特别费时的计算占用很长的时间这种场景,去除不必要的轮询
from callapp-lib.
请问可否进入微信之后跳转小程序界面?
from callapp-lib.
if (waitTime > 2500) {
clearInterval(checkOpen);
cb();
}
if (!hide) {
cb(); // 唤端失败的回调函数
}
请教一下,waitTime > 2500
这段代码判定的是唤端成功,还是失败?
看文章描述,像是成功;看下一段代码注释 cb(); // 唤端失败的回调函数
,又像是失败
from callapp-lib.
是失败的意思。失败的时候才需要执行失败回调函数。
时间已经过了 设定的 等待时间,页面还没有隐藏,算是失败
from callapp-lib.
APP 如果被唤起的话,页面就会进入后台运行,setInterval 在 android 中停止运行。
我们的判断条件比预期时间多设置了 500ms,所以如果安卓中 setInterval 内的函数执行 100 次以内所费时间超过 2500ms,则说明 APP 唤起成功,反之则代表失败
根据文章里这段描述,waitTime > 2500
感觉还是呼端成功。看了一些其他的文章和代码,都是按呼端成功判断的。所以,这部分还是比较困惑
https://www.cnblogs.com/caizhenbo/p/6339715.html
https://juejin.im/post/5ac44a9c6fb9a028d82bf98b
from callapp-lib.
是失败的意思。失败的时候才需要执行失败回调函数。
时间已经过了 设定的 等待时间,页面还没有隐藏,算是失败
可能我没描述清楚,我想确定的是 if (waitTime > 2500) {}
判断下的 cb()
是呼起成功还是失败?不是if (!hide){}
判断下的 cb()
from callapp-lib.
@shurong2199 你的理解是正确的。我在项目中实际并没有使用 waitTime 去判断,因为 visibilitychange 的兼容性足够应对
晚上我会把文章里的代码更新一下
from callapp-lib.
@shurong2199 你的理解是正确的。我在项目中实际并没有使用 waitTime 去判断,因为 visibilitychange 的兼容性足够应对
晚上我会把文章里的代码更新一下
清楚了,感谢~
from callapp-lib.
你好,请教一下,andorid系统下,对于配置了host的情况来说,generateScheme所生成的链接中并没有能够带上host,会造成无法唤起app的问题。如果我将host拼接到path传入,是否会影响到ios系统下app的唤起?谢谢
from callapp-lib.
@FrankCheungCN 配置了host是你设置了代理?安卓和ios你们的scheme是不一样的吗
from callapp-lib.
@FrankCheungCN 配置了host是你设置了代理?安卓和ios你们的scheme是不一样的吗
配置了host是指安卓APP的intent filter配置了host,如
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="myhost" android:scheme="myscheme" /> </intent-filter>
按照https://developer.android.com/guide/topics/manifest/data-element , url scheme应该是由以下及部分组成:
<scheme>://<host>:<port>[<path>|<pathPrefix>|<pathPattern>]
我看到generateScheme生成的链接中,只有path和param,并没有前面的host和port,是这个问题。
所以现在我直接用生成的链接无法唤起APP,不知道有什么方法,谢谢
from callapp-lib.
@FrankCheungCN
很少有带host或者port的🤣
我可以给加上,这样在 iphone 上生成的 scheme 同样会带有 host ,你们 android 和 ios 的 scheme 应该是统一的吧
from callapp-lib.
@FrankCheungCN
很少有带host或者port的🤣我可以给加上,这样在 iphone 上生成的 scheme 同样会带有 host ,你们 android 和 ios 的 scheme 应该是统一的吧
是的,统一的。谢谢噢
from callapp-lib.
@FrankCheungCN 支持 scheme host以及port的功能会在周五的2.0.0版本中发布
from callapp-lib.
@FrankCheungCN 支持 scheme host以及port的功能会在周五的2.0.0版本中发布
好的,感谢。我到时候更新一下
from callapp-lib.
@FrankCheungCN 2.0.0 已更新,API 的修改可以参照 README.md 或者 releases
from callapp-lib.
请问有没有碰到过某些android机型无法自动唤起app必须手动点击的情况呢
from callapp-lib.
@lww555 参照#15
from callapp-lib.
@suanmei 我扫你提供的二维码,在UC浏览器,华为浏览器发现并不可以正常吊起App.
from callapp-lib.
@haishengXie0712 唤端配置**有个单词写错了,已修复 02bbd7b
from callapp-lib.
@suanmei 我刚测试了一下确实可以,我这两天看了您的文章,然后自己类似造了个轮子.发现在搜狗浏览器里面会调不起APP.我刚拿了你的测试,也是不行.现在有点卡在这里没有了头绪了.
from callapp-lib.
搜狗里用的是intent还是scheme
from callapp-lib.
用的是indent
from callapp-lib.
有测试过 scheme是否可行吗
from callapp-lib.
我尝试过也是不行的
from callapp-lib.
那就是真的不行了。可能搜狗也有类似白名单的这种机制,这种就不是技术可以绕过去得了
from callapp-lib.
@suanmei 你好,我还想问一下个问题.就是我希望页面进来直接唤起APP,不经过按钮点击的.就是说我直接模拟点击a标签.但是发现在UC浏览器和谷歌浏览器下并不支持.我想问一下,有遇过类似的情况吗?
from callapp-lib.
可以参考一下 #15 , 打开直接唤起app
的兼容性不好
from callapp-lib.
楼主能给个用这个库唤起淘宝的例子吗,感谢
from callapp-lib.
@cllgeek 我不知道淘宝的scheme、universalLink都是什么;我们的场景都是调用自己公司的app,如果是使用其他app的三方服务,得调sdk,还有问题,提新的issue,这个issue有点过大了
from callapp-lib.
Related Issues (20)
- 安卓红米k30手机下的qq浏览器点击第一次唤起失败,第二成功。 HOT 2
- qq唤不起 app,但默认浏览器可以唤起app
- PC谷歌浏览器安卓模拟器失败无法跳转失败地址 HOT 3
- TypeError: document.body.append is not a function HOT 1
- IOS qq和qq浏览器无法唤起app,android 微信无法唤起app HOT 1
- 请问fallback有没有提供回调函数? HOT 2
- 作者你好,请问能否为项目添加license HOT 1
- 是否考虑集成微信开放标签来解决微信唤端问题? HOT 1
- h5中唤起APP直接跳到了AppStore(本地已安装对应APP) HOT 3
- 你好 想问下现在能否支持跳转谷歌商店呢,如果没有,后续可以加跳转谷歌商店,或者自定义其他渠道的跳转链接 HOT 3
- 网页可以在不进行任何用户操作的时候自动换起 app 吗? HOT 1
- 大佬,微信浏览器唤醒app有开发标签唤醒了,考虑集成吗 HOT 1
- Why is there no complete example
- 在超链接中调用唤醒方法:单击 / 双击,执行的唤醒流程不一致 HOT 3
- deeplink=scheme://goto?https://xxxx?key=value,跳转有问题
- 此工具是不是不能唤醒whatsapp? HOT 1
- 【开源自荐】每日更新的前端面试题库
- callapp-lib 唤醒app成功后怎么关闭本身的定时器 HOT 1
- iOS企业微信内无法唤起APP,直接唤起APP Store
- `checkOpen` 函数实现可能存在内存泄漏问题
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from callapp-lib.