Ios Phonegap构建和WKWebView:我们这里的问题是沟通失败
WKWebview和Phonegap构建:index.js和WKWebview之间是否可以通信 我正在使用Phonegap Build生成我的移动设备可执行文件。我正在打开一个网络视图并从我们的网站加载一个页面。在使用UIWebView时,我在移动设备上对index.js进行编码以侦听loadstop事件并调用executescript在webview中的网页上执行javascript并将结果返回到index.js,在那里我可以做任何我需要的事情 但是UIWebView速度很慢,所以对于iOS,我一直在尝试通过cordova插件WKWebView引擎插件让WKWebView工作 我可以让WKWebview打开我的URL,与UIWebView相比,它的速度非常快,但经过几天的搜索(谷歌知道的每一个包含“WKWebview”和“Phonegap”的页面)和实验,我一直找不到任何检测loadstop(或类似内容)的方法,我也没有找到任何方法从index.js在WKWebView中执行脚本 我可能很乐意使用index.js和WKWebView之间的任何通信方法。loadstop事件后是否有类似于executescript的过程,即使它是异步的?是否有某种类型的消息传递功能 我想看看index.js的一些代码示例 我开始认为我必须打破僵局,在xcode中学习本机代码才能实现这一点。我当然希望不会,因为到目前为止,Phonegap构建对我来说效果很好 有人在这件事上运气好吗 下面是在UIWebView下工作的代码。在WKWebView下,它可以很好地打开URL,但loadstop不会触发,也不会执行脚本Ios Phonegap构建和WKWebView:我们这里的问题是沟通失败,ios,cordova,phonegap-build,wkwebview,Ios,Cordova,Phonegap Build,Wkwebview,WKWebview和Phonegap构建:index.js和WKWebview之间是否可以通信 我正在使用Phonegap Build生成我的移动设备可执行文件。我正在打开一个网络视图并从我们的网站加载一个页面。在使用UIWebView时,我在移动设备上对index.js进行编码以侦听loadstop事件并调用executescript在webview中的网页上执行javascript并将结果返回到index.js,在那里我可以做任何我需要的事情 但是UIWebView速度很慢,所以对于iOS,
50个煮熟的鸡蛋给任何能帮我工作的人。InApp Browser是个反复无常的野兽,很乐意帮忙!作为参考,我现在有一个使用InApp Browser和WKWebView的应用程序,两者都使用以下功能: “加载停止”未启动:
var inAppBrowserRef = cordova.InAppBrowser.open("www.google.com", '_blank', 'location=no,toolbar=yes');
inAppBrowserRef.addEventListener('loadstop', function(event) {
console.log("loadstop: " + event.url);
alert("loadstop: " + event.url);
// run execute script code
}
});
此外,请确保在“deviceready”事件触发期间/之后使用InAppBrowser
执行脚本发布
我相信这里的问题是你的代码没有启动,将其包装成函数并立即调用:
ref.executeScript(
{ code: 'var runCode = function() { window.location.search; } runCode();' },
function (value) {
var requestString = value[0];
console.log("McMApp loadstop request string: " + requestString);
});
我不完全确定,但是您不应该也向位置搜索函数传递一个参数吗
// Append "someData" as url parameter query
window.location.search = "someData";
最后,请注意,WKWebView目前确实存在许多已知问题。始终首先检查GitHub或ApacheCordova官方网站等上的已知问题,因为正如您所写的,您可能会浪费很多时间而一事无成。我目前正在使用-这个团队比“官方”插件修复bug的速度要快得多,所以你可以尝试一下。InAppBrowser是一个反复无常的野兽,非常乐意提供帮助!作为参考,我现在有一个使用InApp Browser和WKWebView的应用程序,两者都使用以下功能: “加载停止”未启动:
var inAppBrowserRef = cordova.InAppBrowser.open("www.google.com", '_blank', 'location=no,toolbar=yes');
inAppBrowserRef.addEventListener('loadstop', function(event) {
console.log("loadstop: " + event.url);
alert("loadstop: " + event.url);
// run execute script code
}
});
此外,请确保在“deviceready”事件触发期间/之后使用InAppBrowser
执行脚本发布
我相信这里的问题是你的代码没有启动,将其包装成函数并立即调用:
ref.executeScript(
{ code: 'var runCode = function() { window.location.search; } runCode();' },
function (value) {
var requestString = value[0];
console.log("McMApp loadstop request string: " + requestString);
});
我不完全确定,但是您不应该也向位置搜索函数传递一个参数吗
// Append "someData" as url parameter query
window.location.search = "someData";
最后,请注意,WKWebView目前确实存在许多已知问题。始终首先检查GitHub或ApacheCordova官方网站等上的已知问题,因为正如您所写的,您可能会浪费很多时间而一事无成。我目前正在使用-这个团队比“官方”插件修复bug的速度要快得多,所以你可以试试