V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nidongpinyinme
V2EX  ›  Apple

URL Scheme 可以获取返回值吗?

  •  
  •   nidongpinyinme · 2020-12-11 20:58:31 +08:00 · 2086 次点击
    这是一个创建于 1447 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 老哥们晚上好,下班了吗
    • 最近在用年轮 3背单词,研究官方文档时发现软件提供了URL Scheme,其中提到了一句 若创建成功,返回创建的卡片标志符
    • 咱也不知道是自己见识短了还是文档写串了
    • URL Scheme 可以获取返回值吗?
    9 条回复    2020-12-11 22:32:17 +08:00
    also24
        1
    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
        2
    nidongpinyinme  
    OP
       2020-12-11 21:31:35 +08:00
    @also24 看是看到了,但是没读明白,比如说我要进行“添加并打开新建的卡片”操作,x-success 里写啥呢
    also24
        3
    also24  
       2020-12-11 21:34:34 +08:00   ❤️ 1
    @nidongpinyinme #2
    简单点说就是,你自己再提供一个自己的 URL Scheme,然后它会主动调用相应的 URL

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

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

    或者按照文档里说的,返回值放在回调函数的参数列表里了,我应该怎么用呢,尝试了 add-card 参数置空是报错的
    also24
        5
    also24  
       2020-12-11 22:16:09 +08:00   ❤️ 1
    @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
        6
    nidongpinyinme  
    OP
       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
        7
    also24  
       2020-12-11 22:30:24 +08:00
    你这个 open-card 后面应该不需要带 ? 才对。
    另外我不太确定你这个模板是否有正常的做转义。

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


    如果你想测试 x-success 的内存,可以将 x-success 的链接写个普通网址,例如 https://httpbin.org/anything
    also24
        8
    also24  
       2020-12-11 22:30:57 +08:00
    typo:
    测试 x-success 的内存 -> 测试 x-success 的内容
    nidongpinyinme
        9
    nidongpinyinme  
    OP
       2020-12-11 22:32:17 +08:00
    @also24 好的,谢谢哥,我再试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1103 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.