gpt4 book ai didi

javascript - Mobile safari : frame. src 与 window.location

转载 作者:行者123 更新时间:2023-11-28 09:49:53 25 4
gpt4 key购买 nike

嗨,简单的问题。

从 webview 调用 native 的最佳方式是什么。 iframe 还是 window.location

例如:

gapBridge = document.createElement("iframe");
gapBridge.setAttribute("style", "display:none;");
gapBridge.setAttribute("height","0px");
gapBridge.setAttribute("width","0px");
gapBridge.setAttribute("frameborder","0");
document.documentElement.appendChild(gapBridge);
gapBridge.src = custom + "://" + custom;

或:

window.location = custom + "://" + custom;

Ps:顺便说一句,更改嵌入 webview 中的 src 似乎不起作用。正如堆栈上的其他文章 here 所揭示的那样

最佳答案

iframe 似乎更适合我的情况。我看到 window.location 的问题是,如果您按顺序进行多个调用,浏览器将忽略其中一些。使用 iframe 时,您实际上可以为每个调用创建多个 iframe。我还会在延迟后删除 iframe,这样我就不会发现自己有大量空 iframe 的 DOM。

这是我使用的函数:

function _callNative(url){
var _frame = document.createElement('iframe');
_frame.width=0; _frame.height=0;_frame.frameBorder=0;
document.body.appendChild(_frame);
if (url.indexOf('?') >= 0){
url = url + "&cb=";
}else{
url = url + "?cb=";
}
_frame.src = url + Math.round(Math.random()*1e16);
// Remove the iframe
setTimeout(function(){document.body.removeChild(_frame);}, 2000);
}

例如:

_callNative('native://doSomethingNative()');
_callNative('native://doSomethingElse')

关于javascript - Mobile safari : frame. src 与 window.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209063/

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