URL Scheme 可以获取返回值吗?

2020-12-11 20:58:31 +08:00
 nidongpinyinme
2086 次点击
所在节点    Apple
9 条回复
also24
2020-12-11 21:06:59 +08:00
这文档的开头不是写了嘛:

年轮对于每个 URL 会读取以下 callback 参数
• x-success 成功后打开 URL
• x-error 错误后打开 URL
• x-callback 如果 x-success 或 x-error 没有提供时,会打开 x-callback
所有命令的返回值,将在回调 URL 的查阅参数中
nidongpinyinme
2020-12-11 21:31:35 +08:00
@also24 看是看到了,但是没读明白,比如说我要进行“添加并打开新建的卡片”操作,x-success 里写啥呢
also24
2020-12-11 21:34:34 +08:00
@nidongpinyinme #2
简单点说就是,你自己再提供一个自己的 URL Scheme,然后它会主动调用相应的 URL

例如你自己支持个:yourapp://yourpath/path/success

那你调起它的 URL Scheme 的时候,就传参:
x-success=yourapp%3a%2f%2fyourpath%2fpath%2fsuccess
nidongpinyinme
2020-12-11 21:59:10 +08:00
@also24 不是这样的哥,我调用 add-card 进行添加,完了之后我想打开这个新添加的卡片,但是打开卡片需要 card-id,是 add-card 执行之后返回的,我怎么获取这个返回的 card-id 呢

或者按照文档里说的,返回值放在回调函数的参数列表里了,我应该怎么用呢,尝试了 add-card 参数置空是报错的
also24
2020-12-11 22:16:09 +08:00
@nidongpinyinme #4
我感觉你没看明白……

我多写一点吧,你想要添加卡片,那么就会调用:
mematom://add-card?title=biaoti&api-token=xxx

然后这个接口,你期望返回 card-id 对吧,那么你需要在自己的 APP 里,支持一个自己的 URL Scheme,例如:
yourapp://add-card-callback

然后把这个 URL Scheme , 拼进你要调用的 URL Scheme 里进行调用,也就是:
mematom://add-card?title=biaoti&api-token=xxx&x-success=yourapp%3a%2f%2fadd-card-callback

那么 mematom 在完成 add-card 的操作后,会提取出你的 URL Scheme,拼上需要回调的参数进行调用,也就是:
yourapp://add-card-callback?card-id=123

这个 URL Scheme 会唤起你的 APP 进行处理,你继续做下一步操作就好。
nidongpinyinme
2020-12-11 22:22:02 +08:00
@also24 哥,现在的情况呢,是我没必要用我自己的 app,就用它的接口,打开这个新建的卡片

mematom://add-card?title=biaoti&api-token=xxx&x-success={{mematom://open-card?}}

大概这个样子,按理说它应该自动把 card-id 拼接在后面对吧,但是实际执行好像不太对,因为我没准备再自己写一个 app 进行处理,所以测试环境不太齐全,正在想招把 x-success 里的东西打印出来
also24
2020-12-11 22:30:24 +08:00
你这个 open-card 后面应该不需要带 ? 才对。
另外我不太确定你这个模板是否有正常的做转义。

在 APP 内调用它自己的 URL Scheme 是否有坑,这个我不太确定。


如果你想测试 x-success 的内存,可以将 x-success 的链接写个普通网址,例如 https://httpbin.org/anything
also24
2020-12-11 22:30:57 +08:00
typo:
测试 x-success 的内存 -> 测试 x-success 的内容
nidongpinyinme
2020-12-11 22:32:17 +08:00
@also24 好的,谢谢哥,我再试试

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

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

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

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

© 2021 V2EX