我一直在努力打开窗口打开,在我的应用程序中使用inappbrowser.基本上,我使用phonegap作为包装器来加载具有特殊应用程序功能的移动皮肤CMS站点.
这是index.html.我正在使用inappbrowser(位置设置为no).
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Emerald Test App</title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width" />
<script src="phonegap.js"></script>
<script type='text/javascript'>
var ref = null;
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
var url = 'https://my-cms-site.com/content.aspx?page_id=31&org_id=1&app=1';
var target = '_blank';
var options = "location=no"
ref = cordova.InAppBrowser.open(url, target, options);
}
</script>
</head>
<body onload="onLoad()">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想要做的是在系统浏览器中打开链接 - 从我通过inappbrowser加载的外部网站
我尝试使用类似的文档和来自帖子的建议来下载文件
<script type="text/javascript">
window.open(url, '_system');
</script>
Run Code Online (Sandbox Code Playgroud)
和_blank,并添加'location = no'等,但没有骰子.这些是从我的远程站点加载的外部页面.
单击这些链接后,它们将在同一浏览器(inappbrowser或webview)中打开并接管浏览器.我想要做的是在另一个系统浏览器(chrome,safari,无论如何)中打开它们.这将解决我的下载问题(因为文件有望在系统浏览器中打开,用户可以弄清楚如何处理它们). …
我在Google Play中有一个应用程序包com.example001.android,其中一个应用程序在iOS商店中有名称com.example001.ios.
但是,我现在正在使用phonegap构建,已经删除了很多引导代码,只留下了www文件夹,我正在使用widget ID config.xml,所以现在我只有1 config.xml.
如果我设置widget id为com.example001.ios我无法在Android中发布此应用程序.如果我离开widget id,com.example001.android我无法在苹果商店发布此应用程序.
如果我将小部件ID更改为通用ID com.example001.mobile,那么我将无法将应用程序上传到Google Play,因为程序包名称会更改.
如何为每个目标平台设置包名称/ ID?
我的第一个jquery移动应用程序包含需要来自互联网资源的数据,例如公共谷歌日历和亚马逊联盟小部件,但只有当我在我的Chrome浏览器或使用html5应用程序测试器的Kindle Fire设备上进行测试时,它才有效.如果我用在线Phonegap构建android release apk,那么Kindle和其他Android设备就像联想手机一样无法在应用程序中连接到Internet.我已经阅读了这个问题的所有主题,并发现它被建议<access origin="*" subdomains="true" />在config.xml中使用,但它无效.我还在应用程序中添加了代码片段,如:
if (navigator.onLine) {
$("#ifonline").append("Online");
} else {
$("#ifonline").append("offline");
}
var isOffline = 'onLine' in navigator && !navigator.onLine;
if ( isOffline ) {
$("#ifonline2").append("Status: offline");
}
else {
$("#ifonline2").append("online");
}
Run Code Online (Sandbox Code Playgroud)
但结果却一无所获.我的config.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<widget xmlns = "http://www.w3.org/ns/widgets"
xmlns:gap = "http://phonegap.com/ns/1.0"
id = "com.myapp.myapptodo"
versionCode = "10"
version = "1.0.0" >
<name>myapp</name>
<description>
myapp is very good but can't find that &@?ä? wifi!
</description>
<author href="https://mysite" email="mymail">
Ceatos
</author>
<gap:plugin name="org.apache.cordova.network-information" …Run Code Online (Sandbox Code Playgroud) 是否可以在没有Camera API的情况下通过HTML输入从相机中的相机获取照片?
脚本
我开发了一个应用程序并通过Phonegap封装它(Build)
用户可以使用html文件输入提交照片.但是没有选择从相机拍摄新照片,只有画廊和文件(以及任何其他存储应用程序,如驱动器或Dropbox,如果是这种情况).
我想启用相机选项,但没有PhoneGap的Camera API.
解决方案
我尝试了以下解决方案但没有成功:
1."捕获"属性(来自Raymond Camden的帖子)
使用此方法,您所要做的就是添加"capture"属性,如下所示:
<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Run Code Online (Sandbox Code Playgroud)
Raymond解释说,使用这种方法,你不需要使用PhoneGap的Camera API,因为谷歌开发了这个选项,并在Google IO演示文稿中展示了它,据Google开发人员和Raymond说,它可以运行.
但是......不适合我.
2.配置Phonegap以询问相机的许可(来自Jorge Lizaso的问题)
"也许相机选项没有显示,因为你的应用没有适当的权限"
在上面的问题中,提到了4种间接询问和接收使用相机的适当权限的方法.
我已经尝试了方法2和4,虽然我的应用程序现在要求相机权限并且我允许它正确,当我使用文件输入时,所有选项都被呈现(如图库和文件),但没有相机.
3(和1).将最新版本的webkit与Crosswalk一起使用以确保解决方案#1
由于我的android webview可能会过时(并且与解决方案#1不兼容),我决定在我的应用程序中包含可能的最佳webview:最新版本的Google Chromium.
但是......再没有成功.
1,2和3组合在一起
结果:没有...成功.
我无法让我的图像在我的phonegap版本中工作.
我已经读过绝对路径可能不起作用,所以我尝试了绝对路径和相对路径,但仍然没有运气.
我包括这样的图像:
<Col key={1} xs={3}>
<Image src='/tire_selected.png' responsive />
</Col>
Run Code Online (Sandbox Code Playgroud)
或亲戚
<Col key={1} xs={3}>
<Image src='tire_selected.png' responsive />
</Col>
Run Code Online (Sandbox Code Playgroud)
等于
<img class="img-responsive" src="tire_deselected.png" data-reactid=".0.0.1.0.0.0.0.1.1.0.0.$4.0">
Run Code Online (Sandbox Code Playgroud)
Col&Image是使用bootstrap-react的bootstrap helper组件.这一切在Web视图中都可以正常工作,但在使用phonegap构建时却不行.但是,应该已经编译了源,并且在两种情况下都没有错误.
以下是我的config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.app.exampleapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0">
<name>App</name>
<description>
App
</description>
<author email="support@example.com" href="http://www.example.com">
Author
</author>
<content src="index.html" />
<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" /> …Run Code Online (Sandbox Code Playgroud) 我想首先说这是一个非常好的插件(https://github.com/katzer/cordova-plugin-local-notifications)但是在使用它时遇到了一些困难.
我正在使用Android和Phonegap CLI.我已经尝试过CLI 5.0和现在的Phonegap 3.5.0,这是我的config.xml:
<preference name="phonegap-version" value="3.5.0" />
在我的config.xml中,我尝试了所有这些组合:
<plugin name="de.appplant.cordova.plugin.local-notification" spec="0.8.1" source="pgb" />
<gap:plugin name="de.appplant.cordova.plugin.local-notification" />
<plugin name="de.appplant.cordova.plugin.local-notification" source="pgb" />
Run Code Online (Sandbox Code Playgroud)
然而通知没有出现 - 电话没有任何反应 - 没有,nada,zilch.我还下载了KitchenSink应用程序(https://github.com/katzer/cordova-plugin-local-notifications/tree/example)并安装在Phonegap build和我的手机上,没有再发生任何事情.
这是我在index.html上的代码,所以当手机触发它时应该注册本地通知asap:
cordova.plugins.notification.local.registerPermission(function (granted) {
// console.log('Permission has been granted: ' + granted);
});
cordova.plugins.notification.local.schedule({
id: 1,
title: 'Reminder',
text: 'Dont forget to pray today.',
every: 'minute',
icon: 'res://icon',
smallIcon: 'res://ic_popup_sync'
});
Run Code Online (Sandbox Code Playgroud)
我也试过了
cordova.plugins.notification.local.schedule({
id: 2,
text: "Good morning!",
firstAt: tomorrow_at_8_am,
every: "day" // "minute", "hour", "week", "month", "year" …Run Code Online (Sandbox Code Playgroud) 我需要在我正在开发的PhoneGap Build应用程序中实现推送通知.
我没有找到关于使用新的Google服务Firebase云消息传递(FCM)的文档,但由于它应该是我们现在必须使用的,因此我搜索了一个可以让我的生活更轻松的API.
我找到了:https://www.npmjs.com/package/cordova-plugin-firebase
所以我添加到我的config.xml:
<plugin name="cordova-plugin-fcm" source="npm" />
Run Code Online (Sandbox Code Playgroud)
并将我从https://console.firebase.google.com/创建的google-services.json放在我压缩的文件夹的根目录中,以便上传到Phonegap Build.
但是我收到以下错误:
Execution failed for task ':processReleaseGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/project/src/release/google-services.json
/project/google-services.json
Run Code Online (Sandbox Code Playgroud)
我在根目录中创建了"project"文件夹并将文件放在那里,但这两者都不起作用.
目前我的app文件夹如下所示:
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json
Run Code Online (Sandbox Code Playgroud)
如果有人知道我要放置该文件的位置,或者使用其他API有任何其他方式来实现它,我会非常感激.我从未使用过Phonegap CLI,我一直在使用Phonegap Build.
push-notification firebase phonegap-build cordova-plugins firebase-cloud-messaging
如何在Phonegap构建中安装chromecast?我没找到任何关于phonegap构建的文档.
仍然面临这个问题.我在谷歌搜索无法找到解决方案.
android的需求检查结果:
Java JDK:安装1.8.0
Android SDK:安装为true
Gradle:已安装
错误:某些要求检查失败
.bash_profile
================================
# Setting JAVA_HOME Path
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home"
# Setting ANDROID_HOME Path
ANDROID_HOME=“/Users/{localpath}/Library/Android/sdk”
# Setting GRADLE_HOME Path
GRADLE_HOME=“/Users/{localpath}/Library/Android/gradle/gradle-3.4”
export PATH=“${GRADLE_HOME}/bin:${PATH}”
export PATH="${ANDROID_HOME}/tools:$PATH"
export PATH="${ANDROID_HOME}/platform-tools:$PATH"
Run Code Online (Sandbox Code Playgroud)
Andriod Manifest
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.company.myAPP" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" /> …Run Code Online (Sandbox Code Playgroud) 我有几个目前依赖 PhoneGap Build 为 Andriod 和 iOS 创建本机应用程序的应用程序。由于未能升级到最新的 Cordova iOS 版本来满足 Apple 的要求,Adobe 似乎即将放弃 iOS 兼容性。是时候转向 CLI 了。我希望以前做过这件事的人可以提供一些关于他们如何做到这一点的提示。特别是对工作流程、处理密钥和 config.xml 等的更改。
更新 1:我一直在使用自动化工作流程取得进展,这是我到目前为止所学到的(在 MacOS 上):
如果我有什么问题,请告诉我。
更新 2:
更新 3: …