- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我从 NPM 获取了最新版本的 phonegap 并安装了它。我创建了一个新项目并根据 PhoneGap 上的文档添加了 InAppBrowser 插件 .然后我从我的 webapp 进行 JavaScript 调用,但我从未看到我在下面编码的警报,也没有看到我在 Xcode 中为插件设置的任何断点。
这是 JS 的代码:
var pdfViewer = {
loadPdf: function(record, successCallback, errorCallback) {
var filename = record.get('building') + "-" + record.get('floor') + ".pdf";
var url = People.app.srvcUrl + Global.floorPlanUri + filename + "?access_token=" + People.app.bearerToken.access_token;
if (Ext.os.is.iOS) {
// cordova.exec(successCallback, errorCallback, "PDFViewer", "loadRemotePdf", [url, filename]);
var ref = window.open(url, '_blank', 'location=yes');
ref.addEventListener('loadstart', function() { alert("You made it!"); });
} else {
window.open(url, '_system', 'location=yes');
}
}
};
发生的事情是启动 url 以在我现有的应用程序之上显示 PDF,没有警报也没有位置/关闭按钮。知道为什么不使用 InAppBrowser 吗?我需要在带有关闭按钮的窗口中显示它。
这是我在运行应用程序时在 Xcode 中看到的输出:
2013-10-23 09:39:02.380 mobile-xxx-ios[3302:60b] Multi-tasking -> Device: YES, App: YES
2013-10-23 09:39:02.426 mobile-xxx-ios[3302:60b] Unlimited access to network resources
2013-10-23 09:39:02.564 mobile-xxx-ios[3302:60b] [CDVTimer][phonedialer] 0.477016ms
2013-10-23 09:39:02.567 mobile-xxx-ios[3302:60b] [CDVTimer][sms] 0.230014ms
2013-10-23 09:39:02.569 mobile-xxx-ios[3302:60b] [CDVTimer][emailcomposer] 0.252008ms
2013-10-23 09:39:02.571 mobile-xxx-ios[3302:60b] [CDVTimer][TotalPluginStartup] 7.416010ms
2013-10-23 09:39:02.957 mobile-xxx-ios[3302:60b] Resetting plugins due to page load.
2013-10-23 09:39:05.789 mobile-xxx-ios[3302:60b] Finished load of: file:///var/mobile/Applications/5916FB20-FDEC-40A7-AE77-9EF14AF30585/mobile-xxx-ios.app/www/index.html
2013-10-23 09:39:18.168 mobile-xxx-ios[3302:60b] Resetting plugins due to page load.
2013-10-23 09:39:18.680 mobile-xxx-ios[3302:60b] Finished load of: https://pdfs.xxx.com/noauth/plans/x-1.pdf
FAILED to create agar for HelveticaLTMM.
FAILED to create agar for TimesLTMM.
这是我的 config.xml:
<widget xmlns = "http://www.w3.org/ns/widgets"
id = "io.cordova.helloCordova"
version = "2.0.0">
<name>Mobile App</name>
<description>
Mobile Phonegap Application
</description>
<access origin="*" subdomains="true"/>
<content src="index.html" />
<!-- Preferences for iOS -->
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="UIWebViewBounce" value="true" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="EnableLocation" value="false" />
<preference name="EnableViewportScale" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="OpenAllWhitelistURLsInWebView" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="permissions" value="none" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="true" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="true" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="true" />
<preference name="auto-hide-splash-screen" value="true" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="7" />
<preference name="android-installLocation" value="auto" />
<feature name="SSLSelfCertOverride">
<param name="ios-package" value="SSLSelfCertOverride" />
</feature>
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage"/>
</feature>
<feature name="PhoneDialer">
<param name="ios-package" value="PhoneDialer"/>
<param name="onload" value="true" />
</feature>
<feature name="Sms">
<param name="ios-package" value="Sms"/>
<param name="onload" value="true" />
</feature>
<feature name="EmailComposer">
<param name="ios-package" value="EmailComposer"/>
<param name="onload" value="true" />
</feature>
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<feature name="Geolocation">
<param name="ios-package" value="CDVLocation" />
</feature>
<feature name="PackageInfo">
<param name="ios-package" value="PackageInfo" />
</feature>
<feature name="PDFViewer">
<param name="ios-package" value="PDFViewer" />
</feature>
</widget>
最佳答案
请检查以下内容:
第一步
在您的“platforms/ios/www/plugins/”中,是否有“org.apache.cordova.inappbrowser”目录?如果答案是否定的,则未成功添加。
解决方案:创建目录“org.apache.cordova.inappbrowser/www/”,并将“InAppBrowser.js”放入其中。您可以在 PhoneGap 项目根目录“yourproject/plugins/org.apache.cordova.inappbrowser/www/”中找到它。然后转到步骤 2。
第 2 步
打开“platforms/ios/www/cordova_plugins.js”。在“module.exports”中,添加:
{
"file": "plugins/org.apache.cordova.inappbrowser/www/InAppBrowser.js",
"id": "org.apache.cordova.inappbrowser.InAppBrowser",
"clobbers": [
"window.open"
]
}
在“module.exports.metadata”中,添加:
"org.apache.cordova.inappbrowser": "0.2.5"
并保存。 “0.2.5”是插件的版本,可以在plugin.xml中找到。 (看起来这个数字并不重要。)
然后运行它,打开你的检查器并检查“InAppBrowser.js”是否成功添加到 head 标签中。
注意:在不修改“cordova_plugins.js”的情况下手动将“InAppBrowser.js”添加到 head 标签中将不起作用。如果1的回答是肯定的,直接进入第2步。
希望这能解决您的问题。
关于ios - 在 Phonegap 3.1.0 中未调用 InAppBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530598/
Example image 如何在 Phonegap 中添加像这张图片这样的 float 气泡通知。 最佳答案 没有您正在寻找的“开箱即用”插件。但是,您可以创建自己的插件或简单地使用 phonega
我正在使用 HTML 和 JS、JQuery Mobile 构建一个应用程序,并使用 PhoneGap Build 进行打包。客户想知道是否可以添加打印功能...有人知道吗?没有 PG Build 打
我已经安装了 Phonegap 使用 $ npm install -g PhoneGap 我也创建了项目。之后我做了 $ PhoneGap build android 它给出了 [phonegap]
我尝试创建 Phonegap 项目,其中需要集成 ASIHTTPRequest 和 JASON 引用, 并出现以下错误 ld: duplicate symbol _SBJSONErrorDomain
我有一个 Phonegap 应用程序,我从早期版本的 Phonegap 开始,我想升级到最新版本。我需要采取哪些步骤来升级它? 我正在寻求一般性答案,但我的具体情况是 Phonegap 1.1.0 -
我已在我的 MAC 电脑(IOS 10.5.8,SDK 3.1.2)上成功安装 PhoneGap。尝试创建一个新的基于 PhoneGap 的应用程序,包含 PhoneGap 框架并将所需的文件复制到
我正在 phonegap 中为三个不同的平台构建一个应用程序:Android、iOS 和 Blackberry。这样做时,我必须检测设备类型,以便我可以在不同平台和不同设备(如 Android Pho
开始在Mac上使用phonegap(Xcode 4,构建iPhone应用程序)我已经阅读了很多有关名为phonegap.plist的文件的内容,包括外部URL的白名单和其他内容。 这是我的问题,我在
所以我有一个运行 Phonegap 1.4.0 的应用程序(不要问),我决定升级到 1.8.1,这样做时 Phonegap 全局变量不再存在,将被替换为实用程序。 所以我转换了每一次出现: var t
我尝试了什么: 我正在开发一个安卓应用程序。在我的应用程序中,我必须打开 -> 向用户显示 Microsoft Office 文档(doc、docx、xls、xlsx、ppt、pptx)内容。为此,我
使用phonegap制作iOS应用时,ChildBrowser插件可以打开一个可以使用phonegap功能的远程页面吗? 例如:在phonegap应用程序中的index.html,调用childbro
我有一个带有 angularjs 的网络应用程序。我想使用 phonegap 将它变成一个移动应用程序 (android)。 我使用了 phonegap 构建:https://build.phoneg
我正在使用 Phonegap build 为每个平台生成可执行文件。每次更改代码时,我都必须在 phonegap build 上上传代码并生成新的 Apk 文件(适用于 android)。我不想在真实
我很生气,这是毫无疑问的,除了明显的可见差异之外,有人报告高度为: $('body').outerHeight(); //1780 与在我的本地 Windows 8 机器上使用 phonegap
我最近使用 phonegap 完成了我的第一个混合应用程序项目。当谈到公开测试时,我有点害怕签名过程。我从这里以及网上的其他地方阅读了许多不同的建议 fragment 来完成这项工作。 以下是如何为
我是 phonegap 的新手,我尝试创建一个简单的 phonegap 应用程序。 使用命令行安装phonegap后:--- 我已经成功创建了项目,但是当我尝试运行 phonegap build io
我正在为 Android 平台制作一个 phonegap 应用程序。在这个应用程序中,我想在多个 html 页面中滑动导航。请告诉我该怎么做。要么在单个 html 页面中完成,要么我必须为此滑动导航创
是否有任何插件可用于 Juce我可以添加哪些库可以同时适用于 IOS 和 android?如果没有,我如何集成 Juce我的电话间隙应用程序中的库? 最佳答案 没有插件。但您可以使用介绍榨汁机来创建不
Phonegap 刚刚推出了一种方法,可以使用以下命令使用本地服务器立即查看您对 phonegap 应用程序的更改: phonegap serve 然后通过下载 PhoneGap Developer
我们对如何集成phonegap插件,然后使用phonegap build构建我们的移动应用程序有一些疑问,这可能吗? 当您使用 Phonegapbuild 构建您的应用程序时,它会为所有受支持的设备构
我是一名优秀的程序员,十分优秀!