gpt4 book ai didi

javascript - cordova inappbrowser 无法在 iOS 上打开外部 url

转载 作者:行者123 更新时间:2023-11-28 05:31:01 24 4
gpt4 key购买 nike

我正在phonegap中开发一个混合应用程序,基本上我在索引页面中有一个按钮,每当单击该按钮时都会打开一个外部网址。我在 Android 上成功了,在 iOS 上失败了。

我查过这些问题iOS / Cordova: InAppBrowser not working -cordova/phonegap onclick doesn't work -PhoneGap Build: how to open external url in device browser on Android? -phonegap open link in browser但不幸的是,这些问题都没有帮助我解决问题。

<小时/>

第一个假设可能是错误消息警报:错误消息在我正在测试我的应用程序的 iPhone 上是:[ERROR] 初始化时出错
Cordova:缺少命令错误

第二个假设我在 window.openonclick 事件上做错了什么方法,因为当我单击 iOS 测试设备上的打开按钮时,没有任何反应。

这是代码:

document.getElementById("openBrowser").addEventListener("click", function(){
var ref = window.open('http://www.espn.com', '_self', 'location=yes');
ref.addEventListener('loadstart', function(event) { alert('start: ' + event.url); });
ref.addEventListener('loadstop', function(event) { alert('stop: ' + event.url); });
ref.addEventListener('loaderror', function(event) { alert('error: ' + event.message); });
ref.addEventListener('exit', function(event) { alert(event.type); });
});
<button id="openBrowser">APRI</button>

<小时/>

正如你所看到的,上面的代码片段也可以在谷歌波纹模拟器上运行,正如我之前在问题开始时所说的那样,它也可以在Android上运行(链接到android网络应用程序https://play.google.com/store/apps/details?id=com.phonegap.unoxtutti&hl=it)事实上,我不确定前一个假设或后一个假设的故障背后可能存在什么问题。

除了cordova插件inappbrowser位于config.xml中

    <plugin name="org.apache.cordova.inappbrowser" />

我确实无法找到该错误,但我希望向您提供必要的信息来帮助我解决这个看似无法解决的问题

测试环境为Google Ripple Emulator , Phonegap Desktop AppPhonegap Mobile App 。桌面应用程序创建项目的目录,而移动应用程序和谷歌波纹模拟器连接到桌面应用程序,并且是我的测试环境。最后但并非最不重要的一点是,在瑞波模拟器上,外部网址成功打开,但在移动应用程序上却没有,并且在打开应用程序时抛出初始化错误

最佳答案

在花了很长时间谷歌搜索网络后,我让 InAppBrowser 打开一个外部 URL。 this is the SO answer who solved my bug

这是链接中答案的代码

document.addEventListener('deviceready', onDeviceReady, false);

function onDeviceReady() {

// Mock device.platform property if not available
if (!window.device) {
window.device = { platform: 'Browser' };
}

handleExternalURLs();
}

function handleExternalURLs() {
// Handle click events for all external URLs
if (device.platform.toUpperCase() === 'ANDROID') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
navigator.app.loadUrl(url, { openExternal: true });
e.preventDefault();
});
}
else if (device.platform.toUpperCase() === 'IOS') {
$(document).on('click', 'a[href^="http"]', function (e) {
var url = $(this).attr('href');
window.open(url, '_system');
e.preventDefault();
});
}
else {
// Leave standard behaviour
}
}
<a href="http://stackoverflow.com">

基本上,我在上面的代码片段中所做的就是检查设备是 iOS 还是 Android,并且根据所使用的设备,我使用不同的方法。这适用于 iOS、Android 和浏览器。我真的希望这个答案能够帮助尽可能多的人。

需要设备插件和 InAppBrowser 插件,否则此代码将失败

关于javascript - cordova inappbrowser 无法在 iOS 上打开外部 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699589/

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