当前位置: 首页 > 面试题库 >

从Safari显示器启动的应用程序:是否要允许此页面打开“(空)”?

通飞尘
2023-03-14
问题内容

我正在用Go / Objective-C编写Mac OS应用程序。可以说,我没有使用Xcode,而是手工组装了应用程序捆绑包。这是文件系统层次结构的样子

${APPNAME}.app
  Contents
    MacOS
      ${APPNAME} (binary)
  Resources
    Base.lproj
      InfoPlist.strings (text)
  Info.plist (text)

该捆绑包可以正常启动。应用程序按预期工作。我的Plist文件中有一个CFBundleURLTypes字典,该字典为我的应用程序定义了URL方案。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>${APPNAME}</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>zzz</string>
        </array>
    </dict>
</array>

(注意:${APPNAME}类似“ MyApp”。它不是Java样式的反向DNS名称字符串。)

当我单击Safari中使用zzz://方案的链接时,收到一条消息,内容为:

Do you want to allow this page to open "(null)"?

这是为什么?我已经在Info.plist文件和InfoPlist.strings文件中定义了我的应用程序名称。

InfoPlist.strings文件仅包含以下内容:

CFBundleName = "My Wonderful Application"

问题答案:

显然有某种缓存机制正在发生。当我们设法购买到另一个Mac系统时,从未在其上安装有问题的软件,就没有发生此问题。

注意:在每次测试开始时,行为不正确的先前系统都会从该软件中 完全
删除该软件。Finder,Safari或某些其他Apple软件必须已将应用程序名称秘密缓存为“(空)”。

答案:将其安装在新的Mac机器上,或完全还原(没有备份)要测试的机器。



 类似资料:
  • 问题内容: 我可以定义setter方法以返回此方法而不是void吗? 喜欢: 然后我可以使用新的ClassA()。setItem1()。setItem2() 问题答案: 关于JavaBeans规范有很多误解。 它存在的主要原因是统一的Java“组件”模型。这是一种使用反射与Java对象进行编程交互的方式。该API本身名为JavaBeans Introspection 。请看一下示例用法,您将比普通

  • 我试图检查在哪里失去了准确表示大整数的能力。所以我写了这个小片段: 这段代码似乎适用于所有编译器,除了clang。Clang生成一个简单的无限循环。戈德博尔特。 这是允许的吗?如果是,这是QoI问题吗?

  • 我有一个运行秒表服务的应用程序,我在前台运行该服务 我有一个显示计时器的通知,它每秒都会更新 在我离开应用程序30秒后,通知停止更新,我发现原因是我的设备的电池优化: 在我的应用程序的系统设置中,有一个电池优化部分,其中包含一个名为的设置,可以打开或关闭 我发现两个线程(回答线程1和回答线程2)试图回答如何检查设置的状态,它们都建议使用<但对我来说,这并不管用。无论设置是打开还是关闭,此函数都返回

  • 注意:不能重复这个,因为在这个解决方案中是针对iOS移动应用的。iOS-从本机应用程序返回Safari而不打开新选项卡 谢谢你抽出时间。

  • 我有一个Web/android应用程序,使用Ionic 4和电容器编写,我一直试图从Android服务(通过电容器插件激活)发出的通知中重新进入Ionic应用程序到特定页面,但没有成功。 以下是在服务中创建通知的代码: 我认为我需要在新的意图(这个,MainActivity.class)中/周围添加一些东西,以使电容器/离子电池将应用程序初始化到正确的状态,但我无法确定应该是什么! 我浏览了电容器