当前位置: 首页 > 知识库问答 >
问题:

在代号为One的应用程序的Android、iOS和Javascript端口中拦截具有给定域的url

孔志强
2023-03-14

用例:我需要复制流行社交网络使用的方式来提供指向给定内容的链接,例如帖子。这意味着像https://www.example.com/link-to-the-content这样的链接应该被Codename One应用程序的Android、iOS和Javascript端口拦截。

我试图这么做,但没有成功。

Javascript端口我不知道是否显示。getInstance()。getProperty(“AppArg”,空)以任何方式在javascript端口中实现。我知道如果javascript端口安装在https://www.example.com/然后https://www.example.com/link-to-the-content将产生404错误。然而,我认为通过实现一些服务器代码(可以自动包含在构建服务器生成的war中)可以绕过这个限制。。。或者,如果url是https://www.example.com/?content=xyz,可能是显示屏。getInstance()。getProperty(“AppArg”,空) 可以使用。请让我知道是否有任何已经工作的解决方案,或者是否有必要进行RFE。

Android端口这对我来说部分有效,我的代码中有什么错误吗?问题是,如果应用程序被终止,然后从链接打开,它可以正常工作,但如果应用程序从图标打开,然后被放在后台,然后从链接再次打开,它就不工作了:在这种情况下,应用程序将显示一个空白的白色屏幕。

我的Android构建提示:<代码>Android。Xinu过滤器=

代码:

public class MyApplication {

private Form current;
private Resources theme;
private String arg;

public void init(Object context) {
    [...]
}

public void start() {
    if (current != null) {
        current.show();
        return;
    }
    Form hi = new Form("Hi World", BoxLayout.y());

    final SpanLabel message;
    arg = Display.getInstance().getProperty("AppArg", null);
    if (arg == null) {
        message = new SpanLabel("App launched from icon");
    } else {
        message = new SpanLabel("App launched from the url: " + arg);
    }
    hi.add(message);
    hi.show();

    hi.addShowListener(l -> {
        arg = Display.getInstance().getProperty("AppArg", null);
        if (arg == null) {
            message.setText("App launched from icon");
        } else {
            message.setText("App launched from the url: " + arg);
        }
        hi.revalidate();
    });

}

iOSport这对我根本不起作用。我尝试使用构建提示ios.url计划=


共有1个答案

连志义
2023-03-14

在Android和iOS您需要一个自定义的URL方案,例如这些是Codename One Build应用程序的构建提示:

android.xintent_filter=<intent-filter>   <action android:name="android.intent.action.VIEW" />    <category android:name="android.intent.category.DEFAULT" />    <category android:name="android.intent.category.BROWSABLE" />    <data android:scheme="cn1bldapp" />  </intent-filter>
ios.plistInject=<key>CFBundleURLTypes</key>     <array>         <dict>             <key>CFBundleURLName</key>             <string>com.codename1.build.app</string>         </dict>         <dict>             <key>CFBundleURLSchemes</key>             <array>                 <string>cn1bldapp</string>             </array>         </dict>     </array>

对于这些构建提示,您可以使用如下所示的URL:

cn1bldapp://content-of-the-url

不幸的是,这只会部分起作用,因为大多数地方不会将cn1bldapp识别为URL。但正如我在这里解释的,这里有一个技巧,你可以使用https URL,然后使用302响应重定向到cn1bldapp。通过这种方式,您还可以检测引用调用方,并在它们不同时发送正确的URL响应。

关于JavaScript端口,我认为您可能可以使用#选项传递一个URL参数,然后在JS中使用位置查询它,但可能有更优雅的方法来传递它或进行深度链接。我必须检查一下。

 类似资料:
  • 我能以某种方式截获来自应用程序的绝对所有流量吗?我应该做什么来做到这一点?提前谢谢你)

  • 本文向大家介绍在Nginx中拦截特定用户代理的教程,包括了在Nginx中拦截特定用户代理的教程的使用技巧和注意事项,需要的朋友参考一下 现代互联网滋生了大量各种各样的恶意机器人和网络爬虫,比如像恶意软件机器人、垃圾邮件程序或内容刮刀,这些恶意工具一直偷偷摸摸地扫描你的网站,干些诸如检测潜在网站漏洞、收获电子邮件地址,或者只是从你的网站偷取内容。大多数机器人能够通过它们的“用户代理”签名字符串来识别

  • 我需要分享一个视频链接从Youtube应用程序到我的代号一个应用程序在iOS上。 这似乎是可能的,根据:https://stackoverflow.com/a/38036939/1277576

  • 问题内容: 我已经在VPS(ubuntu 10.04)上部署了我的nodejs应用程序。我已经将其托管在一个子域(subdomain.myapp.com:3000)上,并且我只有一个IP地址 默认情况下,Apache默认使用端口80。我只希望我的应用程序可以在端口3000上运行,但URL应该是(subdomain.myapp.com) 是否可以在nodejs中实现,还是必须调整虚拟主机或apach

  • 如何在本机操作系统共享支持下共享代号为One的视频?ShareButton只支持文本和图像。