GVKun编程网logo

Android-修复仅1页的屏幕方向(phonegap)

11

如果您对Android-修复仅1页的屏幕方向和phonegap感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Android-修复仅1页的屏幕方向的各种细节,并对phonegap进行深入的分析,

如果您对Android-修复仅1页的屏幕方向phonegap感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Android-修复仅1页的屏幕方向的各种细节,并对phonegap进行深入的分析,此外还有关于android + phoneGap 环境搭建、android – $.ajax()在phonegap上、android – Phonegap splashscreen方向、android – Phonegap – 从背景到前景的实用技巧。

本文目录一览:

Android-修复仅1页的屏幕方向(phonegap)

Android-修复仅1页的屏幕方向(phonegap)

我仅在为index.html页面固定屏幕方向时遇到问题。我要允许应用程序旋转,但首页上除外。我了解向您的活动添加以下内容-
android:screenOrientation =“ portrait”可以阻止屏幕旋转。

但是,我需要设置它,使其特定于页面。我正在使用phonegap,因此需要停止我的Web视图页面。

我尝试在清单中调用以下活动-com.phonegap.droidgap.index.html,但是这不起作用。

有人可以建议我仅定义一页的固定方向吗?

提前致谢

答案1

小编典典

您可以使用以下适用于Android的PhoneGap插件:

https://github.com/champierre/pg-plugin-screen-
orientation

并添加到您的index.html页面onload:

navigator.screenOrientation.set(''portrait'');

android + phoneGap 环境搭建

android + phoneGap 环境搭建

PhoneGap是一个开发跨平台的html5本地化程序的平台,通过它可以把网页变为各种平台上的应用程序

1.下载phoneGap

现在phoneGap已经捐给了apache, 地址应该是:

http://cordova.apache.org/docs/en/4.0.0//guide_cli_index.md.html#The%20Command-Line%20Interface

它是通过node.js来进行下载的。因为需要node.js,官网:https://nodejs.org/

说明:node.js 和 phoneGap(cordova) 都需要配置一下环境变量。在PATH中添加bin的目录即可。

通过cardova命令来创建phonegap项目。

4.在eclippse中新建工程

在eclipse里新建工程

下一步

创建的android项目版本可以是更低一些我看了一下它自带的例子是5

点击finish

5.加入phoneGap包

1)创建

/libs    #这个用于放cordova-1.5.0.jar

/assets/www  #这个用于放cordova-1.5.0.js (由cordova命令生成出来的项目)

点击项目右键属性->java build path->libraties-> add jars


把解压出来的android目录下的xml包放到/res下



cordova.xml:

<?xml version="1.0" encoding="utf-8"?>
<cordova>
    <access origin="http://127.0.0.1*"/>
    <log level="DEBUG"/>
</cordova>

我猜acess origin是phonegap的内部web服务器地址,log是定义日志级别

plugins.xml:

<?xml version="1.0" encoding="utf-8"?>
<plugins>
    <plugin name="App" value="org.apache.cordova.App"/>
    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
    <plugin name="Device" value="org.apache.cordova.Device"/>
    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
    <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
    <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
    <plugin name="File" value="org.apache.cordova.FileUtils"/>
    <plugin name="Network Status" value="org.apache.cordova.NetworkManager"/>
    <plugin name="Notification" value="org.apache.cordova.Notification"/>
    <plugin name="Storage" value="org.apache.cordova.Storage"/>
    <plugin name="Temperature" value="org.apache.cordova.TempListener"/>
    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
    <plugin name="Capture" value="org.apache.cordova.Capture"/>
    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
</plugins>

上面定义的是所加载的插件,加载的插件越多就需要在AndroidManifest.xml里定义响应的访问权限,若是不需要网络可以把响应的插件去掉

6.开始开发

可以参考自带的example

1)首先把activity类进行修改

package com.yifangyou.hellophonegap;

import android.os.Bundle;
import org.apache.cordova.*;
public class HelloPhoneGap extends DroidGap {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //加载assets/www目录下的的index.html
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

2)创建index.html

编辑assets/www/index.html

<!DOCTYPE HTML>
<head>
<title>你好 PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
</head>
<body>
<h1>你好 PhoneGap</h1>
</body>
</html>

3)修改AndroidManifest.xml,增加权限设置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
      package="com.yifangyou.hellophonegap" android:versionName="1.1" android:versionCode="5">
    <uses-sdk android:minSdkVersion="8" />
    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
        />

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <application android:icon="@drawable/icon" android:label="@string/app_name"
        android:debuggable="true">
        <activity android:name=".HelloPhoneGap" android:label="@string/app_name" 
                 android:configChanges="orientation|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="org.apache.cordova.DroidGap" android:label="@string/app_name" 
                 android:configChanges="orientation|keyboardHidden">
            <intent-filter>
            </intent-filter>
        </activity>
    </application>
</manifest>

7.最后运行

android – $.ajax()在phonegap上

android – $.ajax()在phonegap上

任何人都知道在Android的github中使用$.ajax()的phonegap的例子吗?我读过JSONP或CORS,但我只是从Twitter请求数据.

我只需要获取我的数据服务器.

解决方法:

通过jquery mobile非常容易.你可以使用普通的Ajax和一些JSON来完成你的工作.我用PHP服务器完成了.这里是示例代码,

通过jquery向服务器发送请求.

$.ajax({
          url: <your Server URL>,
          dataType: 'jsonp',
          jsonp: 'jsoncallback',
          timeout: 5000,
          success: function(data, status){
                             /*Process your response here*/
                        }
       });

在PHP服务器文件中,

<?PHP
$data="I am sending response to you";

/*you have to mention this callback compulsory*/

echo $_GET['jsoncallback'] . '(' . json_encode($data) . ');';
?>

android – Phonegap splashscreen方向

android – Phonegap splashscreen方向

为手机屏幕应用程序设置启动画面时,即使我在中心制作了带有徽标的大图片,图片也会在整个屏幕上拉伸.理想情况下,我希望图片只是坐在中心,背景为黑色或白色.如何配置启动画面的行为?

解决方法:

有一个更好的解决方案:只需将以下splash.xml放在res / drawable中(修改android:src属性)并在setIntegerproperty()调用中更改对R.drawable.splash的引用.

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
  android:src="@drawable/splashImage"
  android:gravity="center_horizontal|center_vertical" />

有关设置的更详细说明,请参阅我的Blog.

android – Phonegap – 从背景到前景

android – Phonegap – 从背景到前景

我正在开发我的团队以及一个必须在后台运行的应用程序,当套接字调用的事件应该将应用程序放在前台时.

应用程序必须与viber或whatsapp调用类似.我此时停了下来.我的应用程序现在可以调用音频和振动,但我必须将屏幕绘制到前台.

我正在使用5.1.1版本的phonegap.

我是这个插件:https://github.com/katzer/cordova-plugin-background-mode

有人可以帮我一把吗?非常感谢这一点.

解决方法

我找到了一个方法!使用“toForeground”插件. https://github.com/caioladislau/cordova-toforeground

cordova.plugins.backgroundMode.enable();

      cordova.plugins.backgroundMode.onactivate = function() {
        setTimeout(function(){ 
          toForeground("MainActivity","com.me.myapp",function() {
            navigator.notification.vibrate(1000);
          },function(){
            navigator.notification.vibrate(5000);
          }); 
        },4000);
      };

注意它的调用位置:

toForeground(mainClassName,packageName,successFunction,errorFunction);

为了找到“mainClassName”和“packageName”,我搜索了:platforms / android / src / com / me / myapp / MainActivity.java,我发现:

package com.me.myapp;

import android.os.Bundle;
import org.apache.cordova.*;

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }
}

我们今天的关于Android-修复仅1页的屏幕方向phonegap的分享就到这里,谢谢您的阅读,如果想了解更多关于android + phoneGap 环境搭建、android – $.ajax()在phonegap上、android – Phonegap splashscreen方向、android – Phonegap – 从背景到前景的相关信息,可以在本站进行搜索。

本文标签: