Codename One Android 拦截 URL 的问题

7

我在使用Codename One的Android平台时遇到了拦截URL的问题。我已经通过使用构建提示ios.urlScheme和ios.plistInject成功地解决了iOS平台上的问题。我在Android平台上使用的构建提示是:

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="mibrand" />  </intent-filter> 

然而,安卓未将文本“mibrand://...”注册为链接,因此它只是普通文本,在任何安卓设备上都无法点击。我做错了什么?
这是我的 PHP 代码。
<?php

$store = $_GET['ref'];
$id = $_GET['id'];
$link1 = "mibrand://";
$link1 .= $store;
$link1 .= "/";
$link1 .= $id;
$link2 = "http://www.mibrandapp.com";
?>

<a href="<?php echo $link2 ?>"></a>
<a href="<?php echo $link1 ?>"></a>

然后我将分享链接设置为 mylink/share.php?ref=store&id=56

这在iOS上也无法工作。

1个回答

3
您需要将此代码嵌入HTML页面中,并自行添加链接,然后将该页面分享给您的用户。
<html>
...
<a href='mibrand://...'> open my app </a>
...
</html>

我刚刚验证了这个方法,使用的是http://codenameone.com/testm.html,它本质上是:

<html>
    <head>
        <title>Mibrand Test</title>
    </head>
    <body>
            <a href="mibrand://launch"> open my app </a>
    </body>
</html>

我使用了如上所述的构建提示,将其映射到codenameone_settings.properties中:

codename1.arg.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\="mibrand" />  </intent-filter>

如果您需要通过电子邮件工作,只需重定向到包含JavaScript代码的HTML,然后重定向到该链接。

好的,但是我该如何添加参数呢?例如,URL 根据分享的内容而异,那么我该如何在没有 PHP 的情况下使用变量 href 一个 URL。因为我尝试使用 PHP header 函数,但它无法拦截 URL? - Kyri33
这不起作用。我甚至尝试了 <href="<?php echo $link ?>"></a>。没有可以用作参考的代码吗? - Kyri33
尝试创建一个静态网页,其中包含<a href='mibrand://...'>打开我的应用程序</a>链接,并使用设备浏览器打开此页面。 - Chen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接