gpt4 book ai didi

javascript - 我在 Android 上的 handleOpenURL 实现无法工作,我错过了什么?

转载 作者:行者123 更新时间:2023-11-28 09:35:46 24 4
gpt4 key购买 nike

我正在开发一个 PhoneGap 项目,我正在尝试实现一个简单的机制,当 URL 传递到应用程序。可悲的是我遇到了一些绊脚石。问题有两个:

首先我对 sendJavascript 的调用似乎根本不起作用 - 没有调用 JavaScript,没有错误,什么也没有。我已读到此功能在 Activity 启动时不起作用,但似乎没有其他人遇到问题...

其次当我调用loadUrl(参见下面的示例)时,我收到如下错误消息:

ReferenceError: Can't find variable: handleOpenURL at undefined:1

下面是我的Java代码:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");

final Intent intent = getIntent();

Log.d("myApp","Start");
Log.d("myApp","Data string: " + intent.getDataString());

if(intent.getDataString() != "" && intent.getDataString() != null) {

Log.d("myApp","Calling handleOpenURL");
String url = intent.getDataString();
// this.sendJavascript("handleOpenURL(\"" + url +"\");");
super.loadUrl("javascript:handleOpenURL('"+url+"')");
}
}

下面是我的 JavaScript 代码:

<script>    
function handleOpenURL(url) {
$("body").append("<h2>Url:</h2>");
$("body").append("<p>"+url+"</p>");
}
</script>

如果您能提供任何帮助,我们将不胜感激!

最佳答案

我在使用 DroidGap 的 Android 上确实遇到了这个问题...

第一次启动应用程序时, Intent 数据对于 DroidGap 子类方法是可见的,但是无法将数据获取到 Javascript 执行环境中以使其可用。

我尝试了 sendJavascript 调用(如上所示),但我怀疑此操作会失败,因为页面尚未完成加载并且 onDeviceReady 尚未触发。

我还尝试在 CookieManager 中设置 cookie,但无法完全正常工作。

将数据附加到查询字符串,即super.loadURL("文件://..."+ "#"+ url)

然后在 onDeviceReady 事件处理程序中解析 location.href 效果最好。应用程序第一次启动时它不起作用,但是当应用程序关闭+终止然后启动时它确实起作用。

遗憾的是 InvokeString 无法在 Android 上运行并且已被弃用。

关于javascript - 我在 Android 上的 handleOpenURL 实现无法工作,我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com