安卓可以在地址栏里输入 scheme 唤起 APP 吗?

2021-04-12 10:09:34 +08:00
 honglei92

安卓可以在地址栏里输入 scheme 唤起 APP 吗? ios 的 Safari 可以 按住的 oppo 浏览器不行呢

11026 次点击
所在节点    Android
22 条回复
ReferenceE
2021-04-12 10:11:18 +08:00
Schema(?
q197
2021-04-12 10:15:20 +08:00
@ReferenceE 是 URI Scheme

我猜和浏览器实现有关,电脑上的浏览器大多支持
imldy
2021-04-12 10:20:02 +08:00
可以,我试过导入 clash 订阅,Via 浏览器
hs0000t
2021-04-12 10:22:10 +08:00
不同浏览器的实现不一样
honglei92
2021-04-12 10:23:32 +08:00
@imldy 我再 manife 里面也配了 scheme,但是还是不行呢
imldy
2021-04-12 10:28:36 +08:00
@honglei92 #5 这就不太懂了,我安卓开发就会一点点。而且你要确保浏览器支持。
Yotako
2021-04-12 10:29:22 +08:00
javascript:window.location.href=xxx???
lisjiang
2021-04-12 10:56:41 +08:00
不可以,需要網頁走<a href="myscheme://domain/mypath?key=mykey">Click</a>
iminto
2021-04-12 11:09:25 +08:00
可以。以前玩过一个伪装成计算器的隐私空间 APP,就是通过在浏览器里输入 URL 进去的。用的 Android 7.1 系统+内置浏览器
jejer
2021-04-12 13:13:25 +08:00
intent:
crayygy
2021-04-12 13:41:10 +08:00
Chrome 不行,Firefox 可以,Focus 也可以。
可以测试一下 tel://10086 这样
AoEiuV020
2021-04-12 14:36:28 +08:00
@iminto 这输入的应该是 http 之类的协议不是自定义协议吧,
AoEiuV020
2021-04-12 14:38:52 +08:00
@iminto 找到 app 了,是 http 打开个网页,然后网页里有个按钮点击打开自定义协议地址,点击打开这种可以,本就是标准做法,
DOLLOR
2021-04-12 15:16:33 +08:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>URI Scheme Test</title>
</head>
<body>
<input type="text" style="width: 90%;" placeholder="input URI Scheme here" autofocus oninput="aTag.href=this.value">
<br>
<a href="" id="aTag">click to open</a>
</body>
</html>

把以上代码保存为 html,用浏览器打开,在 input 里输入 URI Scheme (例如“tel://10086”),点击 click to open 就能唤起 app 了。
yukiww233
2021-04-12 15:47:33 +08:00
印象里 chrome 系浏览器跳转 scheme 必须有个用户事件触发(比如点击), 放在页面回调里直接跳是不会生效的
leo7723
2021-04-12 15:53:19 +08:00
楼主说的功能叫 deeplink,有可能和浏览器相关,浏览器支持就没问题。
Helsing
2021-04-12 16:18:37 +08:00
@leo7723 #16
对,要 app 和浏览器都支持才行
weixiangzhe
2021-04-12 18:53:11 +08:00
不同浏览器限制不同 不一定能调起 可以看这个老哥的总结
https://github.com/suanmei/callapp-lib
weixiangzhe
2021-04-12 18:53:56 +08:00
tianlin
2021-04-13 13:38:45 +08:00
android 和 ios 的相关的协议有差别,ios 基本上都会选择使用 Universal Link,android 里面才用 URL Scheme ;
另外不同的浏览器 /伪浏览器,因为 iOS 里面是底层控制了可以直接跳;在 android 里面很多都锁了跳,比较无奈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX