HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

Native.js启动qq聊天界面

Native.JS

代码如下:

function goqq(qqUrl){  
    var mContext = plus.android.runtimeMainActivity();  
    var Uri = plus.android.importClass('android.net.Uri');  
    var Intent = plus.android.importClass('android.content.Intent')  
    var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(qqUrl));  
    mContext.startActivity(intent);  
}  
goqq('mqqwpa://im/chat?chat_type=wpa&uin=100000&version=1');
继续阅读 »

代码如下:

function goqq(qqUrl){  
    var mContext = plus.android.runtimeMainActivity();  
    var Uri = plus.android.importClass('android.net.Uri');  
    var Intent = plus.android.importClass('android.content.Intent')  
    var intent = new Intent(Intent.ACTION_VIEW, Uri.parse(qqUrl));  
    mContext.startActivity(intent);  
}  
goqq('mqqwpa://im/chat?chat_type=wpa&uin=100000&version=1');
收起阅读 »

icon彩色图标 mui如何增加自定义icon图标 如何引入外部icon图标 阿里巴巴矢量图标

icon

官方教程我看了好久才看明白,最后看了阿里巴巴阿里巴巴矢量图帮助网址;,今天周日,现在分享下我的方法!
第一步:
登录阿里巴巴矢量图网站,也可直接复制后面网址:http://www.iconfont.cn/

普通用户直接选择微博登录,有时候会登录失败!
PS:请清除浏览器缓存再刷新几次,说不定就可以了!或者重启电脑,等等,各种方法都可以试试!!!
第二步:
登录成功之后可以直接搜索自己想要的图标即可!右上角那里有图标库,也可以选择相同风格或者彩色图标,

第三步:
搜索到自己想要的图标也可以从图标库浏览找到之后鼠标移动到图标上,会出现三个选项,点击上面购物车图标可以加入购物车!
如果需要多张图标,每个都加入购物车即可!

第四步:
图标选择完毕后,找到购物车,如果没有购物车可以下拉一下网页就有了,或者自己慢慢找找,你添加的图标都在购物车里!

第五步:
把你所有图片点击添加到项目,然后点击右边一个加号文件夹图标,就可以添加项目名称,输入你想要项目名称,这个可以随便输入。



第六步:
找到你刚才项目,点击下载到本地即可!或者也可以用远程链接,都可以,我是下载到本地项目里!

第七步:
把下载文件加压出来!


第八步:
找到iconfont.js这个文件,把他复制放到你的项目里,项目根目录或者js文件夹都可以。


第九步:
1.在网页引入js文件:我的是在js文件夹下。
<script src="js/iconfont.js"></script>
2.在网页把矢量图专用他css样式复制进去。需要可以自己微调!
<style type="text/css">
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
3.找到需要修改的地方,如果原来有图标就把原来图标代码去掉即可,不会看图,原来class="mui-icon" 这个不要去掉保留

以底部导航为例
原来代码:【 <a class="mui-tab-item">
<span class="mui-icon mui-icon-phone"></span>
<span class="mui-tab-label">电话</span>
</a>

替换后代码:【
<a class="mui-tab-item mui-active">
<span class="mui-icon">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-ziyuan"></use>
</svg>
</span>
<span class="mui-tab-label">首页</span>
</a>

图标代码可以去阿里巴巴矢量图库,找到你的项目,复制代码即可,是在弄个不懂可以看图,

第十步:
阿里巴巴矢量图帮助网址;阿里巴巴矢量图帮助网址; http://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8cf4382a&helptype=code

直接查看symbol引用

继续阅读 »

官方教程我看了好久才看明白,最后看了阿里巴巴阿里巴巴矢量图帮助网址;,今天周日,现在分享下我的方法!
第一步:
登录阿里巴巴矢量图网站,也可直接复制后面网址:http://www.iconfont.cn/

普通用户直接选择微博登录,有时候会登录失败!
PS:请清除浏览器缓存再刷新几次,说不定就可以了!或者重启电脑,等等,各种方法都可以试试!!!
第二步:
登录成功之后可以直接搜索自己想要的图标即可!右上角那里有图标库,也可以选择相同风格或者彩色图标,

第三步:
搜索到自己想要的图标也可以从图标库浏览找到之后鼠标移动到图标上,会出现三个选项,点击上面购物车图标可以加入购物车!
如果需要多张图标,每个都加入购物车即可!

第四步:
图标选择完毕后,找到购物车,如果没有购物车可以下拉一下网页就有了,或者自己慢慢找找,你添加的图标都在购物车里!

第五步:
把你所有图片点击添加到项目,然后点击右边一个加号文件夹图标,就可以添加项目名称,输入你想要项目名称,这个可以随便输入。



第六步:
找到你刚才项目,点击下载到本地即可!或者也可以用远程链接,都可以,我是下载到本地项目里!

第七步:
把下载文件加压出来!


第八步:
找到iconfont.js这个文件,把他复制放到你的项目里,项目根目录或者js文件夹都可以。


第九步:
1.在网页引入js文件:我的是在js文件夹下。
<script src="js/iconfont.js"></script>
2.在网页把矢量图专用他css样式复制进去。需要可以自己微调!
<style type="text/css">
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
3.找到需要修改的地方,如果原来有图标就把原来图标代码去掉即可,不会看图,原来class="mui-icon" 这个不要去掉保留

以底部导航为例
原来代码:【 <a class="mui-tab-item">
<span class="mui-icon mui-icon-phone"></span>
<span class="mui-tab-label">电话</span>
</a>

替换后代码:【
<a class="mui-tab-item mui-active">
<span class="mui-icon">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-ziyuan"></use>
</svg>
</span>
<span class="mui-tab-label">首页</span>
</a>

图标代码可以去阿里巴巴矢量图库,找到你的项目,复制代码即可,是在弄个不懂可以看图,

第十步:
阿里巴巴矢量图帮助网址;阿里巴巴矢量图帮助网址; http://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8cf4382a&helptype=code

直接查看symbol引用

收起阅读 »

设置任意浏览器为ctrl+r的运行默认浏览器

点击一个电脑上不存在的浏览器出现这个,

点击浏览器跟着设置路径就ok了

点击一个电脑上不存在的浏览器出现这个,

点击浏览器跟着设置路径就ok了

多窗口如何让图片预览全屏预览的问题,我这样【总结】

previewimage

更改mui.previewimage.js文件 如下
31行增加下面代码:
作用,初始化 mui.previewImage({fWebview:['apps/home.html','apps/menu.html']});
传入需要处理的 Webview 也就是被挡住的 id

    var myFweb = this.options.fWebview||[];  
        this.fWebview = [];  
        for (var i in myFweb) {  
            var styles = plus.webview.getWebviewById(myFweb[i]).getStyle()||{};  
            this.fWebview.push({id:myFweb[i],styles:styles});  
        }  
        var myStyle = plus.webview.currentWebview().getStyle();  
        this.fWebview.push({id:myStyle.name,styles:myStyle});

300 多行 改open 函数

proto.open = function(index, group) {  
    //修改页面样式都隐藏  
    for (var i in this.fWebview) {  
            var nowStyles = {top:0,bottom:-this.fWebview[i].styles.height||0};  
            if(typeof this.fWebview[i].styles.top == 'undefined')delete nowStyles.top;  
            if(this.fWebview[i].styles.bottom >0 )nowStyles.bottom = 0;  
            plus.webview.getWebviewById(this.fWebview[i].id).setStyle(nowStyles);  
        }

320 多行 改close 函数

    proto.close = function(index, group) {  
        //还原原来的样式  
        for (var i in this.fWebview) {  
            var nowStyles = this.fWebview[i].styles;  
            var setStyles = {top:nowStyles.top,bottom:nowStyles.bottom};  
            if(typeof setStyles.top == 'undefined')delete setStyles.top;  
            plus.webview.getWebviewById(this.fWebview[i].id).setStyle(setStyles);  
        }  

搞定,参考了好多问这个问题的 总结了下。给需要的人方便

继续阅读 »

更改mui.previewimage.js文件 如下
31行增加下面代码:
作用,初始化 mui.previewImage({fWebview:['apps/home.html','apps/menu.html']});
传入需要处理的 Webview 也就是被挡住的 id

    var myFweb = this.options.fWebview||[];  
        this.fWebview = [];  
        for (var i in myFweb) {  
            var styles = plus.webview.getWebviewById(myFweb[i]).getStyle()||{};  
            this.fWebview.push({id:myFweb[i],styles:styles});  
        }  
        var myStyle = plus.webview.currentWebview().getStyle();  
        this.fWebview.push({id:myStyle.name,styles:myStyle});

300 多行 改open 函数

proto.open = function(index, group) {  
    //修改页面样式都隐藏  
    for (var i in this.fWebview) {  
            var nowStyles = {top:0,bottom:-this.fWebview[i].styles.height||0};  
            if(typeof this.fWebview[i].styles.top == 'undefined')delete nowStyles.top;  
            if(this.fWebview[i].styles.bottom >0 )nowStyles.bottom = 0;  
            plus.webview.getWebviewById(this.fWebview[i].id).setStyle(nowStyles);  
        }

320 多行 改close 函数

    proto.close = function(index, group) {  
        //还原原来的样式  
        for (var i in this.fWebview) {  
            var nowStyles = this.fWebview[i].styles;  
            var setStyles = {top:nowStyles.top,bottom:nowStyles.bottom};  
            if(typeof setStyles.top == 'undefined')delete setStyles.top;  
            plus.webview.getWebviewById(this.fWebview[i].id).setStyle(setStyles);  
        }  

搞定,参考了好多问这个问题的 总结了下。给需要的人方便

收起阅读 »

5+sdk 自定义插件层

混合开发 NJS 5+sdk

封装自定义插件,实现js层调用Java层代码;

封装自定义插件,实现js层调用Java层代码;

有偿解决mui,h5+,vue-cli问题

Vue mui

解决mui,h5+,vue-cli,webpack等各种前端问题,995232179

解决mui,h5+,vue-cli,webpack等各种前端问题,995232179

手机端mui演示的APP跟网站上的演示代码不统一。

手机端mui演示的APP跟网站上的演示代码不统一。有些新的模版在手机端APP上可以看到。
网站上却没有,希望能同步更新一下。谢谢

手机端mui演示的APP跟网站上的演示代码不统一。有些新的模版在手机端APP上可以看到。
网站上却没有,希望能同步更新一下。谢谢

关闭GPS后,Geolocation获取位置权限失败

maps Geolocation

HBuild 8.~ 的基座和新版本的SDK都有类似问题。这会导致在Andriod5.0和IOS上,不论是真机测试还是在线/离线打包,当关闭GPS开启其他定位途径比如WIFI/4G时,系统会提示「 获取定位权限失败 」,错误代码是 22。 这是不妥当的。

同时我发现HBuilder 7.6.5.201612301621没有此问题。

查阅最新版SDK和HBuild 8.~ 基座真机测试APK,在 io.dcloud.js.geolocation.GeolocationFeatureImpl文件中与HBuilder 7.6.5.201612301621基座打包应用的同一文件存在这样的差别:

//HBuild 8.~  
public String execute(final IWebview var1, final String var2, final String[] var3) {  
    PermissionUtil.usePermission(var1.getActivity(), var1.obtainApp().isStreamApp(), "LOCATION", new StreamPermissionRequest(var1.obtainApp()) {  
        public void onDenied(String var1x) {  
            var1x = DOMException.toJSON(22, "获取定位权限失败");  
            JSUtil.execCallback(var1, var3[0], var1x, JSUtil.ERROR, true, false);  
        }  

        public void onGranted(String var1x) {  
            GeolocationFeatureImpl.this.a.a(var1, var2, var3);  
        }  
    });  
    return null;  
}  
//HBuilder 7.6.5.201612301621  

public String execute(IWebview var1, String var2, String[] var3) {  
        this.a.a(var1, var2, var3);  
        return null;   
}  

我相信这就是出错的根源。并且为此问题困扰的用户不少。请官方尽快确认基座和SDK中这样的代码是否需要完善。谢谢!

继续阅读 »

HBuild 8.~ 的基座和新版本的SDK都有类似问题。这会导致在Andriod5.0和IOS上,不论是真机测试还是在线/离线打包,当关闭GPS开启其他定位途径比如WIFI/4G时,系统会提示「 获取定位权限失败 」,错误代码是 22。 这是不妥当的。

同时我发现HBuilder 7.6.5.201612301621没有此问题。

查阅最新版SDK和HBuild 8.~ 基座真机测试APK,在 io.dcloud.js.geolocation.GeolocationFeatureImpl文件中与HBuilder 7.6.5.201612301621基座打包应用的同一文件存在这样的差别:

//HBuild 8.~  
public String execute(final IWebview var1, final String var2, final String[] var3) {  
    PermissionUtil.usePermission(var1.getActivity(), var1.obtainApp().isStreamApp(), "LOCATION", new StreamPermissionRequest(var1.obtainApp()) {  
        public void onDenied(String var1x) {  
            var1x = DOMException.toJSON(22, "获取定位权限失败");  
            JSUtil.execCallback(var1, var3[0], var1x, JSUtil.ERROR, true, false);  
        }  

        public void onGranted(String var1x) {  
            GeolocationFeatureImpl.this.a.a(var1, var2, var3);  
        }  
    });  
    return null;  
}  
//HBuilder 7.6.5.201612301621  

public String execute(IWebview var1, String var2, String[] var3) {  
        this.a.a(var1, var2, var3);  
        return null;   
}  

我相信这就是出错的根源。并且为此问题困扰的用户不少。请官方尽快确认基座和SDK中这样的代码是否需要完善。谢谢!

收起阅读 »

Android Studio 2.1.2 离线打包

App离线打包

最近公司项目需要集成扫码枪的功能,所以只能采用插件开发,插件开发,那么就要用到离线打包了,特此记下遇到的问题

首先下载官方给的Android SDK, 然后按照步骤导入,导入项目结构如下
主体:

libs:

AndroidManifest;


    <supports-screens  
        android:anyDensity="true"  
        android:largeScreens="true"  
        android:normalScreens="true"  
        android:resizeable="true"  
        android:smallScreens="true"  
        />  
    <uses-sdk android:maxSdkVersion="8"/>  
    <uses-permission android:name="android.permission.INTERNET"/>  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="android.permission.GET_TASKS"/>  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
    <uses-permission android:name="android.permission.CAMERA"/>  
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
    <application  
        android:icon="@drawable/icon"  
        android:label="@string/app_name"  
        android:largeHeap="true"  
        android:name="io.dcloud.application.DCloudApplication"  
        android:allowClearUserData="true">  
        <activity  
            android:name="io.dcloud.PandoraEntry"  
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"  
            android:label="@string/app_name"  
            android:launchMode="singleTask"  
            android:hardwareAccelerated="true"  
            android:theme="@style/TranslucentTheme"  
            android:screenOrientation="user"  
            android:windowSoftInputMode="adjustResize" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
        <activity  
            android:name="io.dcloud.PandoraEntryActivity"  
            android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"  
            android:hardwareAccelerated="true"  
            android:label="5+Debug"  
            android:launchMode="singleTask"  
            android:screenOrientation="user"  
            android:theme="@style/DCloudTheme"  
            android:windowSoftInputMode="adjustResize" >  
        </activity>  

        <service  
            android:name="io.dcloud.common.adapter.io.MiniServerService"  
            android:exported="true" />  

    </application>

运行成功,如下

重要点:
1.assets 文件夹下的 apps 和 www 为固定文件夹名称
2.java 中 io.dcloud该包名也是固定的,记住千万别写错地方了 本人一开始就是写错地方了,一直找不到StreamAppMainActivity,郁闷死

  1. android 项目自己的清单文件中 要额外加上
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 

    不然会报错找不到RInformation ,
    4.web项目:manifest 中的的id标识改为和name 一样,不要用他自己默认生成的id,不然已开始运行会是空白页,因为不是在线打包~,这里在data 文件夹下的 dcloud_control 文件中会用到

  2. dcloud_control 中的 appid 和 appver分贝对应web 项目manifest中 id和version节点下的name
继续阅读 »

最近公司项目需要集成扫码枪的功能,所以只能采用插件开发,插件开发,那么就要用到离线打包了,特此记下遇到的问题

首先下载官方给的Android SDK, 然后按照步骤导入,导入项目结构如下
主体:

libs:

AndroidManifest;


    <supports-screens  
        android:anyDensity="true"  
        android:largeScreens="true"  
        android:normalScreens="true"  
        android:resizeable="true"  
        android:smallScreens="true"  
        />  
    <uses-sdk android:maxSdkVersion="8"/>  
    <uses-permission android:name="android.permission.INTERNET"/>  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="android.permission.GET_TASKS"/>  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
    <uses-permission android:name="android.permission.CAMERA"/>  
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>  
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
    <application  
        android:icon="@drawable/icon"  
        android:label="@string/app_name"  
        android:largeHeap="true"  
        android:name="io.dcloud.application.DCloudApplication"  
        android:allowClearUserData="true">  
        <activity  
            android:name="io.dcloud.PandoraEntry"  
            android:configChanges="orientation|keyboardHidden|keyboard|navigation"  
            android:label="@string/app_name"  
            android:launchMode="singleTask"  
            android:hardwareAccelerated="true"  
            android:theme="@style/TranslucentTheme"  
            android:screenOrientation="user"  
            android:windowSoftInputMode="adjustResize" >  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  

                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
        <activity  
            android:name="io.dcloud.PandoraEntryActivity"  
            android:configChanges="orientation|keyboardHidden|screenSize|keyboard|navigation|mcc|mnc|fontScale"  
            android:hardwareAccelerated="true"  
            android:label="5+Debug"  
            android:launchMode="singleTask"  
            android:screenOrientation="user"  
            android:theme="@style/DCloudTheme"  
            android:windowSoftInputMode="adjustResize" >  
        </activity>  

        <service  
            android:name="io.dcloud.common.adapter.io.MiniServerService"  
            android:exported="true" />  

    </application>

运行成功,如下

重要点:
1.assets 文件夹下的 apps 和 www 为固定文件夹名称
2.java 中 io.dcloud该包名也是固定的,记住千万别写错地方了 本人一开始就是写错地方了,一直找不到StreamAppMainActivity,郁闷死

  1. android 项目自己的清单文件中 要额外加上
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 

    不然会报错找不到RInformation ,
    4.web项目:manifest 中的的id标识改为和name 一样,不要用他自己默认生成的id,不然已开始运行会是空白页,因为不是在线打包~,这里在data 文件夹下的 dcloud_control 文件中会用到

  2. dcloud_control 中的 appid 和 appver分贝对应web 项目manifest中 id和version节点下的name
收起阅读 »