起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6328|回复: 13

[处理中] cordova 插件

[复制链接]

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
发表于 2016-3-31 16:49:24 | 显示全部楼层 |阅读模式
关于在5.3.3上自定义扩展插件现在存在的问题是:
我通过cordova 命令创建一个cordova项目,然后基于这个项目定义了一个cordova插件,并且在这个项目上这个插件是可以调用到的!
我总共写了两个插件,一个是只有本地js的插件这个插件按照X5.3.3 的插件自定义插件新增的方式复制到Native/plugins 并且将插件的文件名称修改为plugin.xml中对应id的值
然后在X5 中引用的那个.w 中引用对应的cordova.js 这个可以在生成的app中调用。
然后我又定义了一个cordova插件,此插件中包含对应的java代码。同样在我的cordova项目中这个可以调用到。添加到X5中的方式和第一个一样。但是新建app的时候在插件列表中可以找到第一个简单的插件HelloWorldPlugin com.butone.cordova.helloworld 但是找不到这个com.butone.cordova.carrier 插件?请问这个是怎么回事?

问题2:
5.3.3 中自带的插件中都有一个plugin-ex.xml 这个文件是用来描述 [url=]选择打包的本地插件  这个弹出框的相关插件信息的么?[/url]

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-3-31 18:05:45 | 显示全部楼层
1.参考http://doc.wex5.com/custom-cordova-plugin/
2.选择插件的弹出框中找的是这个文件中的配置信息
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-3-31 18:10:29 | 显示全部楼层
1 我是按照这个http://doc.wex5.com/custom-cordova-plugin/ 这个来说明来添加的!
2 我写了两个插件com.butone.cordova.carrier,com.butone.cordova.helloworld 都没有plugin-ex.xml 这个文件只有对应的plugin.xml 文件,为什么我的com.butone.cordova.helloworld 这个可以在 选择插件的弹出框中 找到,并且在.w 中使用!而com.butone.cordova.carrier 就找不到呢?
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-3-31 18:28:07 | 显示全部楼层
求解求解求解。我自己通过命令创建一个cordova 的项目测试这两个插件都没有问题。然后我再复制到对应的Native/plugins 下的!!!
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-4-1 10:06:01 | 显示全部楼层
1.plugin-ex.xml这个文件是配置插件需要的参数,并且中文化的
  如果没有插件不需要显示中文可以不用这个文件
2.打包的时候插件列表中没有那应该就是plugin.xml文件中配置的不正确,自己检查看看相关的参数都配置的正确
Cordova.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-4-1 10:26:34 | 显示全部楼层
我做的两个插件都是先通过cordova 开发的命令创建的,然后创建cordova项目测试过了的!我通过cordova插件测试了没有问题。可以调用。但是到了X5 中就找不到这个插件了!这是个什么情况啊?存放插件的路径 F:\BeX5_V3.3\BeX5_V3.3\model\Native\plugins\com.butone.cordova.carrier
plugin.xml<?xml version="1.0" encoding="UTF-8"?>
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    id="com.butone.cordova.carrier"
    version="0.0.1">
    <name>CarrierPlugin</name>
    <description>CarrierPlugin Description</description>
    <author>butone</author>
    <license>Apache 2.0 License</license>
    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>
    <js-module src="www/carrier.js" name="carrier">
        <clobbers target="Carrier" />
    </js-module>
    <platform name="android">
        <source-file src="src/android/CarrierPlugin.java" target-dir="src/com/butone/cordova/carrier"/>
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="CarrierPlugin">
                <param name="android-package" value="com.butone.cordova.carrier.CarrierPlugin"/>
            </feature>
        </config-file>
        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        </config-file>
    </platform>
</plugin>

CarrierPlugin.java 文件:



package com.butone.cordova.carrier;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.PluginResult;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import org.apache.cordova.CordovaInterface;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.PluginResult;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.webkit.CookieManager;
import android.webkit.MimeTypeMap;
import android.telephony.TelephonyManager;

public class CarrierPlugin extends CordovaPlugin {


QQ截图20160401102514.png
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-4-1 10:27:30 | 显示全部楼层
package com.butone.cordova.carrier;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.PluginResult;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import org.apache.cordova.CordovaInterface;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.PluginResult;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.webkit.CookieManager;
import android.webkit.MimeTypeMap;
import android.telephony.TelephonyManager;

public class CarrierPlugin extends CordovaPlugin {
        public static final String TAG = "CarrierPlugin";
        public static final String ACTION_GET_CARRIER_CODE = "getCarrierCode";
        public TelephonyManager tm;

        public void initialize(CordovaInterface cordova, CordovaWebView webView) {
                super.initialize(cordova, webView);
                Context context = this.cordova.getActivity().getApplicationContext();
                tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        }

       
        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
                if (ACTION_GET_CARRIER_CODE.equals(action)) {
                        String carrier = tm.getSimCountryIso();
                        System.out.println(carrier);
                        //Log.d(TAG, carrier);
                        callbackContext.success(carrier);
                        return true;
                }
                return true;
        }
}
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-4-1 14:44:22 | 显示全部楼层
这个问题不解决了吗?
回复 支持 反对

使用道具 举报

226

主题

740

帖子

2370

积分

金牌会员

Rank: 6Rank: 6

积分
2370
 楼主| 发表于 2016-4-12 10:12:14 | 显示全部楼层
求解求解啊???
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2016-4-19 14:31:24 | 显示全部楼层
把插件发过来看看
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-4 08:43 , Processed in 0.060843 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表