小编Ale*_*RKO的帖子

Universal Links可在本地运行,但不适用于AppStore Apps

手动安装应用程序在Xcode(与插入到MacBook设备),我可以点击邮件的链接到Web App和它打开入科尔多瓦应用,而Web应用程序(如预期).

但是当我从AppStore或testFlight(具有完全相同的代码库)下载并安装应用程序时,将忽略Universal Links并打开Web App.

当我监控Apache日志并手动安装应用程序时,我得到:

XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 730 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

但是从testFlight或AppStore安装应用程序时,没有对该文件的请求.

有人可以帮我找到搜索的线索......我怎样才能为我的制作应用启用UniversalLink?

[编辑]来自john316的回答

我拉开了生成的IPA,打开了embedded.mobileprovision,我得到了:

<key>Entitlements</key>
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXX.*</string>     
    </array>
    <key>get-task-allow</key>
    <true/>
    <key>application-identifier</key>
    <string>XXXX.my.domain.com</string>
    <key>com.apple.developer.associated-domains</key>
    <string>*</string>
    <key>com.apple.developer.team-identifier</key>
    <string>XXXX</string>
    <key>aps-environment</key>
    <string>development</string>
</dict>
Run Code Online (Sandbox Code Playgroud)

关联域已启用,但它们不应该有一个包含所有我的字符串数组applinks:domains

deep-linking ios cordova ios-universal-links

13
推荐指数
1
解决办法
2112
查看次数

HttpInterceptor 和 AuthGuard 互相阻塞

我设计的授权系统很差。我需要建议来纠正一些错误。

我创建 :

  • 一个 HttpInterceptor 到:
    • 在每个请求的标头中设置 JWT 令牌(它保存在 localStorage 中)
    • 从响应中检索和更新 JWT 令牌(每个授权请求在标头响应中发回更新的令牌)
    • 出现 401 错误时,将用户重定向到登录页面
  • AuthGuard 用于:
    • 把它放在某个路线上
    • 如果没有重定向到登录页面,检查用户是否被授权
  • 一个用户服务:
    • 在 BehaviorSubject 中保留当前用户
    • 如果 JWT 令牌存储在 localStorage 中,请尝试刷新当前用户

我的用例是:

  1. 用户尝试直接加载具有受限授权的页面
  2. 保护负载 UserService 以验证用户是否已登录
  3. UserService 进行 http 调用
  4. HttpInterceptor 获取请求,因为localStorage 中没有令牌,它不接受令牌
  5. 后面因为没有令牌发送 401
  6. 拦截器拦截响应捕获 401 并返回空值
  7. 当响应变成空​​值时,它永远不会返回不允许 Guard 解析路由的 UserService(然后在 401 拦截器中进行的导航将永远不会被调用)

对于完整的代码,这里是完整的 GitHub 存储库,更准确地说:

如何让拦截器返回空响应而不是空响应?我想这足以解决问题。或者我应该做一个完全不同的模式?

architecture angular

6
推荐指数
0
解决办法
1939
查看次数

如何调试通用链接

我使用cordova插件“ionic-plugin-deeplinks”(据我所知也适用于普通的cordova应用程序)。

在 Android 上,单击链接时用户可以在 chrome 和我的应用程序之间进行选择。=> 我认为应用程序链接有效 => 因为我可以访问 window.IonicDeeplink 并将用户重定向到正确的页面

我无法在 iOS 上有相同的行为,当我单击链接时,我总是在 Safari 中打开该应用程序。

我怎样才能找到问题的线索?

更多背景:

  • apple-app-site-association带有 HTTP 200(仅通过 https),它位于/.well-known/apple-app-site-association
    • 我检查了 TeamID 和 BundleID 5 次(至少);
    • 使用branch.io 验证器,我将所有验证变为绿色:
      • 您的域有效(有效的 DNS)。
      • 您的文件通过 HTTPS 提供。
      • 您的服务器不会返回大于 400 的错误状态代码。
      • 已找到您文件的“内容类型”标头 :)
      • 您的 JSON 已通过验证。
    • 使用苹果验证器,我得到:“所需的操作无法提取通用链接所需的信息。了解如何实施推荐的通用链接。错误没有具有域权利的应用程序用于验证深层链接双重身份验证的权利数据来自当前发布的应用程序的版本。此数据可能需要 48 小时才能更新。” (但一些开发人员说工作应用程序添加了相同的错误)如何处理该结果?
    • 在使用 Xcode 安装应用程序时监视服务器的日志时,我看到一个请求获取 HTTP 200 apple-app-site-association
  • 在使用 Xcode 安装应用程序时,我没有在 Xcode 中获取任何关于 swcd 的日志(我在这里读到,如果我在安装应用程序时出错,我应该这样做)。成功的安装是静默的吗?
  • 我按照该指南设置权利,但有些事情感觉很奇怪:
    • 与指南中的快照不同,我没有*.entitlements在我的项目中找到任何文件。 …

xcode ios cordova ios-universal-links

6
推荐指数
2
解决办法
3186
查看次数

Angular 5 app不会注册服务工作者

我有一个我已经建立的应用程序,SW工作正常.我继续开发而没有注意SW ......现在,在为应用程序充电时,没有更多的SW下载(好像应用程序没有注册SW).

我非常沮丧,因为我不知道如何调试/发现该问题的线索.如何跟踪SW registring进程?

更多背景:

  • 我有:
    • "serviceWorker": true 在.angular-cli.json
    • ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production }) 在我的app.module.ts中
    • 在prod mod中构建我的应用程序并使用http-server(ngsw.json和ngsw-worker.js都可访问)
    • 在开发模式下清理缓存(常规缓存和应用程序/清除存储)
  • 我试过了:
    • 更改app.module导入顺序(我ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })在BrowserModule和last之后第一次尝试,第二次尝试)
    • 验证那environment.productiontrue(它)
    • 从头开始生成另一个空的应用程序执行相同的过程(在这种情况下,SW工作......)

我可以检查别的吗?我忘记了什么吗?

如果不是我最后的两个解决方案是:

  • 在空应用中按模块移动模块以解决问题而不理解错误
  • 照明火+萨满歌......

service-worker angular-cli angular

5
推荐指数
1
解决办法
3258
查看次数