我一直在尝试将插件升级到v3,并且我已经设法通过插件加载问题,并且我设法将插件暴露给客户端环境(对exec的工作方式进行更改等).
但是当我看到adb logcat时
adb logcat | grep -v nativeGetEnabledTags | grep -i web
我收到此错误:
D/PluginManager(11189): exec() call to unknown plugin: WebSocket
我无法弄清楚出了什么问题,我不确定为什么Android版本无法看到插件.
我已将所有代码推送到github仓库,所以如果有人能够复制并帮助我,我会非常欢迎!我也试着写下我转换的经验,并在我点击它们时记录陷阱(自述文件中有一些,虽然它不完整):
这是回购:https://github.com/remy/phonegap_test
- 雷米
我目前正试图安装BarcodeScanner插件的Phonegap Version 3.0.0.我找不到任何关于如何正确安装它的工作文档,我自己也没弄明白.所以我真的很感激任何帮助!
先感谢您!最好的问候,安德烈亚斯
我正在构建一个phonegap插件,需要在PhoneGap提供的WebView上呈现本机UI视图.在iOS中,这非常简单,只需创建视图并将其添加到PhoneGap的webView的scrollView中.这将在webView上呈现控件并允许它与HTML内容一起滚动(请注意,此示例使用UIButton,但我将其应用于自定义UI控件):
-(void)createNativeControl:(CDVInvokedUrlCommand *)command
{
NSDictionary* options = [command.arguments objectAtIndex:0];
NSNumber* x = [options objectForKey:@"x"];
NSNumber* y = [options objectForKey:@"y"];
NSNumber* width = [options objectForKey:@"width"];
NSNumber* height = [options objectForKey:@"height"];
CGRect rect = CGRectMake([x floatValue], [y floatValue], [width floatValue], [height floatValue]);
self._nativeControl = [UIButton buttonWithType:UIButtonTypeSystem];
self._nativeControl.frame = rect;
[self._nativeControl addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[self._nativeControl setTitle:@"Click me" forState:UIControlStateNormal];
[self.webView.scrollView addSubview:self._nativeControl];
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
[self.commandDelegate sendPluginResult:result callbackId:command.callbackID];
}
Run Code Online (Sandbox Code Playgroud)
我尝试过在Android中大致相同的东西,但没有成功.这是我最近的尝试:
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
System.out.println(String.format("%s …Run Code Online (Sandbox Code Playgroud) 我正在编写一个phonegap应用程序,它正在inAppBrowser中启动一个Web应用程序.我想从这个网络应用程序获得一些反馈,以便在我的phonegap应用程序中进一步使用它.
因此,用户启动Web应用程序,在那里执行一些操作,单击按钮后,Web应用程序会向phonegap应用程序返回一个值.
我以为我可以使用inAppBrowser的executeScript方法来注入一个函数,该函数将使用某个事件在Web应用程序内部调用,并且在调用该函数时,评估其在Web应用程序内的返回值.所有我发现的不是完整的phonegap文档和stackoverflow上的这个问题: 使用原生功能扩充webapp - 使用Rails Web应用程序应用程序桥接PhoneGap的InAppBrowser
可悲的是,它没有像我预期的那样工作,因为回调函数会立即触发,而不会等待注入的函数执行.
这是我的移动应用程序代码
<!DOCTYPE html>
<html>
<head>
<title>InAppBrowser.executeScript Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for Cordova to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// Global InAppBrowser reference
var iabRef = null;
// Inject our custom JavaScript into the InAppBrowser window
//
function addFeebackFunction() {
iabRef.executeScript(
{code: "var evaluateFeedback = function(){return 'Done';};"},
function(data) {
alert(data);
}
);
//iabRef.close();
}
function iabClose(event) {
iabRef.removeEventListener('loadstop', addFeebackFunction);
iabRef.removeEventListener('exit', iabClose);
}
// Cordova is ready
// …Run Code Online (Sandbox Code Playgroud) 我正在使用Phonegap3 http://phonegap.com/install/,但我遇到插件问题:
使用后创建项目
phonegap create my-app
phonegap local build android
Run Code Online (Sandbox Code Playgroud)
然后我添加了一个相机插件使用
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
Run Code Online (Sandbox Code Playgroud)
http://docs.phonegap.com/en/edge/cordova_camera_camera.md.html#Camera
然后使用构建项目
phonegap local build android
它工作正常但突然停止工作,在投资问题之后我发现插件没有复制到android项目,虽然我可以列出所有插件使用
phonegap local plugin list
Run Code Online (Sandbox Code Playgroud) 我目前正在为phonegap 3制作一个插件.我有一个使用source-file指令进行复制的自定义框架.在plugin.xml中我尝试过:
<source-file src="libs/ios/mylib.framework" />
Run Code Online (Sandbox Code Playgroud)
但是当我将插件添加到项目中时出现错误:
mylib.framework是一个目录(未复制)
我试图按文件复制框架文件,但它在错误的目录中.
如何使用plugin.xml文件复制自定义ios框架?
我需要运行ionic platform add android/iOs几次才能获得所需的结果.有时插件是在第一次运行后添加的,但通常我必须清除插件和平台目录并重新运行添加平台循环几次,直到所有插件都添加到android文件夹中.
是否有其他人遇到过同样的问题,如果是的话 - 解决方案是什么?如果有...
提前致谢
我正在使用来自cordova的设备插件,所以我有这样的一行let model = device.model || "";会导致Cannot find name 'device'.错误.我认为使用ESLint我需要做
"eslintConfig": {
"globals": {
"device": true
}
}
但是TSLint对应的是什么?
我需要在AndroidManifest.xml文件下添加一些标签
platforms\android\AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
正如我所读到的那样,AndroidManifest.xml文件会在运行中生成,因此不建议对其进行编辑.
那么是否有一个我可以使用的插件,它将使用我在AndroidManifest.xml文件中提供的值为我修改config.xml文件?
我一直有这个问题已经有一段时间了,虽然它不会对我的应用程序产生负面影响,但如果可以,我想解决它.我不确定如何描述问题.
基本上,我有一个Android PhoneGap 1.9项目,使用API 15(这也发生在API 10下),LogCat日志有来自QTAGUID的无情垃圾邮件,特别是来自我的应用程序.
08-04 14:31:30.092: I/qtaguid(15542): Failed write_ctrl(u 118) res=-1 errno=22
08-04 14:31:30.092: I/qtaguid(15542): Untagging socket 118 failed errno=-22
08-04 14:31:30.092: I/qtaguid(15542): Failed write_ctrl(u 123) res=-1 errno=22
08-04 14:31:30.092: I/qtaguid(15542): Untagging socket 123 failed errno=-22
08-04 14:31:36.338: I/qtaguid(15542): Failed write_ctrl(u 116) res=-1 errno=22
08-04 14:31:36.338: I/qtaguid(15542): Untagging socket 116 failed errno=-22
08-04 14:31:36.368: I/qtaguid(15542): Failed write_ctrl(t 116 43082816946176 1074812240) res=-1 errno=1
08-04 14:31:36.368: I/qtaguid(15542): Tagging socket 116 with tag 272f00000000(10031) for …Run Code Online (Sandbox Code Playgroud) phonegap-plugins ×10
cordova ×9
android ×4
ios ×2
javascript ×2
angular ×1
eslint ×1
ionic ×1
tslint ×1
xml ×1